I'm creating Meteor learning material. What would you like to see?

I’m gearing up to write some Meteor/Javascript learning material. In the process I’m writing a few things to get a feel for what content people are into.

My first Meteor piece is an introductory SMS client. It comes with a working application as a git repo and several explanations.

My material will be geared towards applying Meteor and some of the current JS hotness (ehhem, React) to build production ready, value creating applications.

I’d like to know what topics you’d like to see covered (deploy to gce using kubernetes?) as well as what types of applications you’d like to see (sms client? zen alarm clock? MTG Collection Manager?)

Here is the article: http://blog.jakegaylor.com/2015/11/26/hello-twilio-meteor-here/
And the git repo: https://github.com/jhgaylor/hello-twilio-meteor

5 Likes

React + Hot code reloading using webpack (and without Webpack if possible)

Webpack and code splitting with frontend and backend apps.

1 Like

Hybrid/mobile app that actually feels and performs like a native app (or at least as close as possible). Preferably using React as view layer

5 Likes

@faceyspacey have you seen this by @SkinnyGeek1010 ? Webpack with Meteor

1 Like

i haven’t. i’ll check it out.

One of the concepts that I think is very underserved (including the Meteor docs) is how insert/update/etc. actually work. The concept is further blurred with autopublish and insecure packages. There is so much effort to obscure how these work that many devs see this as magic and move on (the more experienced the more prone to them moving on).

In reality they’re just meteor methods that use a facade. I tend to disable these (by not including by denying) and just use my own Meteor methods.

4 Likes

Learning how to write pub/sub code that doesn’t destroy load times and performance. I think a lot of people who are already using Meteor (ie. me two weeks ago) found switching to flow router more challenging than first anticipated because of it forcing you to use pub/sub properly. And for new Meteor developers it would be helpful to understand how pub/sub affects performance. I have read a few tuts on how to pub/sub but none that really show you how to improve them.

4 Likes

Covering template level subscription in detail would be a good one. Or how to transition to a Flow Router coming from Iron Router land mindset. I haven’t migrated to FR yet and in IR I have had problems in separating out the common subscriptions (like in header & footer or overlays) from page/route based subscriptions.

@rogerkirkness Agreed, this would be great! I’ve found that using Meteor methods to fetch non-reactive data can really boost performance for those areas that don’t need to be realtime.

@swapan this is what I used to do it: https://www.okgrow.com/posts/flow-router-migration-guide

Flow Router gives you more control. When I first switched, everything was way slower, because I was just sending everything to the client. Then you start to trim down what you send depending on what you need, and it ends up being faster and re-loading way less. I think you basically just have to write tons of subs for each template.

@SkinnyGeek1010 that is a good point. I hadn’t really thought of that in the context of db information. Thanks.

How to upload and display images.

Anything that goes beyond the normal, and already well-trodden paths. Something handy for more advanced devs. A real challlenge. THANKS!

@SkinnyGeek1010 Would you mind briefly explaining your pattern here? Do you mean wrapping find and findOne inside of a Method, as opposed to just template helpers?

Thanks!

1 Like

Sure, so for querying I typically don’t use the facade, just for insert/update/delete. the best explanation is in this project:

define here and they would go here but to keep the example simple I didn’t include them. It would look like this (again in the both/models/ folder).

Post = {
  insert(doc) {
    Meteor.call('Post.insert', doc);
  },
  update(docId, data) {
    Meteor.call('Post.update', docId, data);
  },
}

This is also super useful for microservices as you can easily hide the fact that your Meteor method is calling another app:

Post = {
  insert(doc) {
    otherDDPServer.call('Post.insert', doc);
  },
  update(docId, data) {
    otherDDPServer.call('Post.update', docId, data);
  },
}

You still have the same nice client API and the meteor method handles the schema and permissions.

SSL with Meteor and Amazon AWS above all else.

People all over search for this online. It’d be good marketing, and solve a problem / fill a need.

1 Like

@SkinnyGeek1010 Ohh okay gotcha. And you still define your own ‘Posts.insert’ method, where I’m assuming the validation takes place?

Also, this is actually the first clear example Ive seen showing how to communicate between microservices. May be going off topic here, but when does it actually make sense to split your app into separate meteor instances (microservices)?

Thanks as always for the help

1.Step by step guide on how to refactor an existing blaze based project to react

3 Likes

Please for the love of god I would really love to know how to do this: Amazon S3 photo uploads (cfs:gridfs cfs:s3) in a grid layout solution? Can't get Isotope/Masonry to work

Hahaha. More the 2nd part about getting Isotope/Masonry to work properly and with additions/deletions as there are plenty of good tutorials out there for Amazon S3.

Testing. Please. Let there be some Tesing

5 Likes