Learn Meteor.js Properly
(Learn Meteor and Everything You Need to Know about It)
At the end of this article, I outline two comprehensive study guides to help you learn Meteor properly. The study guides are for both beginners and seasoned developers. The first study guide, which uses a book, a paid screencast, and some free online resources, teaches you how to build a sophisticated, modern social-media web application with Meteor. And the second study guide, which uses only free resources (one affordable screencast and free online resources), is just as instructive as the first, though you won’t build a specific web application throughout the course.
First, I give a comprehensive Meteor overview, in which I discuss just about everything you want and need to know about Meteor before you commit to investing your time and other resources in this still burgeoning though exceptional technology.
Time to read the Meteor Overview:
14 minutes
Table of Contents
- Receive Updates
- How Will Your Life Change After You Learn Meteor Properly?
- Meteor Transcends (Goes Beyond) Typical JavaScript Frameworks
- What Exactly Is Meteor?
- Alternatives to Meteor
- What Specifically Does Meteor Offer Developers?
- Best Text Editors and IDEs for Meteor
- Should You Be Excited or Skeptical About Meteor?
- A Chorus of Praise and Appreciation for Meteor
- Justifiable Criticisms, Known Limitations, and Frequently Asked Questions about Meteor
- Learn Meteor Now If…
- When to Consider Other Technologies Over Meteor
- Meteor Developer Jobs
- Most Helpful Meteor Resources
- Meteor Tutorials Needed
- Notes
- Acknowledgments
- Learn Meteor Properly Overview
- The Ultimate Study Guide for Learning Meteor Properly
- A Comprehensive Study Guide for Learning Meteor Properly
What You Will Learn in this Meteor Overview
I explain exactly what Meteor is, how it differs from typical JavaScript frameworks, what it offers developers specifically, its alternatives and contemporaries, whether you should be excited or skeptical about it, and where to find Meteor jobs. I also enumerate some of the endorsements written by Meteor converts, and I explore the justifiable criticisms, known limitations, and frequently asked questions that many have raised about Meteor. You will learn all this and much more.
I am honored that you have joined me and I am hopeful you will find this article helpful and illuminating and the accompanying study guides and recommended resources sufficiently instructive. If you don’t, then I would have failed and I would like to hear from you; please notify me in the comments below. Don’t hesitate to alert me of any grammatical errors, typos, general errors, misinformation, missing information, outdated content, or incomprehensible sentences or passages. You won’t hurt my feelings, for I am most interested in providing you accurate, clear, and comprehensible material, and only you can determine whether I have done that.
Learn Meteor Properly Study Group
People have already started study groups for this study guide. One study group starting today (November 3) on Facebook already has over 100 members. You can also find the group onReddit.
If you want to start a study group, send me Tweet or an email.
Let’s begin with a comprehensive overview of Meteor.
How Will Your Life Change After You Learn Meteor Properly?
No, you won’t be cleansed of your sins and washed of your immoralities after learning Meteor properly. Neither will you lose five pounds nor grow two inches.
However, if you have never developed any kind of application before, you will experience ecstasy, so powerful and liberating it will free you to envision, build, and realize your imaginations, like an artist discovering paint and canvas for the first time.
If you currently use Meteor (and even if you have read a Meteor book or some tutorials), you will emerge better equipped to understand and handle common Meteor errors and the often-misunderstood Meteor “magic,” allowing you to experience Meteor’s true efficacy. Efficient, productive, painless.
If you use Rails, Node.js, PHP, Django, Go, Scala, or Java, you will understand Meteorites’ (i.e., Meteor developers) unapologetic praise for Meteor. You wouldn’t be convinced that every facet of Meteor is better than every facet of Rails or Django (it isn’t) or that Meteor will kill Rails or Python (it won’t). But you will undoubtedly acknowledge and appreciate, even if reluctantly, the efficiency and painlessness Meteor affords, as well as its effectiveness in making you a more productive developer—indeed, a happier developer. But be careful, my friend, for even a faithful developer can be tempted by seduction, lured by betterment, and give in to pleasure.
If you currently use proven but old-school technologies to develop applications, learning Meteor properly will allow you to experience the current state of modern web application development. This will prepare you for the foreboding robotic and futuristic frameworks that will inevitably evolve out of technologies like Meteor. You will therefore become familiar with the latest, experience the now, and embrace the inevitable.
Or, if after learning Meteor properly you remain unmoved, unconvinced, or unimpressed, then we would love to hear from you. For you may have invaluable information about efficient web-development tools that we can all use.
Meteor Transcends (Goes Beyond) Typical JavaScript Frameworks
To characterize Meteor as a “JavaScript framework” would be to:
- rob Meteor of its comprehensive and integrated ecosystem; that is, unlike typical JavaScript frameworks, Meteor offers much more than just a front-end, a backend, or a combination of the two with some libraries. It offers everything you need to build web applications: a seamlessly integrated ecosystem that includes frameworks, libraries, database, tools, and more
- overlook its extensive usefulness; that is, you can not only develop traditional RESTful web apps and modern real-time web apps with Meteor, but you can also deploy and host web apps, build and deploy mobile apps, connect Arduinos, and more
- and ignore its expansive efficacy; that is, Meteor has proven effective not only in helping developers build all sorts of applications and packages efficiently and painlessly, but also in empowering others—including the poor1, the nontechnical2, and the uninitiated3—realistically and inexpensively acquire a highly valued skill: the capacity to develop complete web and mobile applications in relatively short time and with limited resources
For these reasons—its comprehensive and integrated ecosystem, extensive usefulness, and expansive efficacy—Meteor transcends, or goes beyond, typical JavaScript frameworks, a characterization more apt for frontend frameworks like Backbone.js, Ember.js, Angular.js, and the like.
What Exactly Is Meteor?
Since Meteor is not a JavaScript framework, what is it then?
Written in JavaScript on the Node.js platform, Meteor is an open-source Isomorphic Development Ecosystem (IDevE) for efficiently and painlessly developing web and mobile applications. The Meteor ecosystem seamlessly integrates all the components (tools, libraries, databases, and frameworks [frontend and backend]) necessary for building and deploying applications.
In short, Meteor provides you with everything you need—except for your desire and a text editor—to develop and deploy complete applications.
Meteor makes developing applications efficient by providing a no-fuss API that works the same everywhere and by including many pre-built functionalities most applications need. And it makes the process painless (relatively painless) by removing many of the technical hurdles developers usually have to contend with when developing applications.
Isomorphic Development Ecosystem (IDevE)
Isomorphic. Isomorphic refers to using the same code on the frontend and the backend; that is, using the same API everywhere (frontend, backend, and even for mobile apps). For example, a piece of isomorphic code is Meteor.logOut(); calling this piece of code would work the same on the frontend and the backend, and even in your mobile Meteor apps. You can think of isomorphic as homogeneous (of the same kind).
Development. Meteor provides all the tools for the application development life cycle, from setup and configuration tools to API and deployment tools.
Ecosystem. To understand the difference between a JavaScript framework like Angular.js and a development ecosystem like Meteor, consider this: A framework is like an unfurnished kitchen; it has a sink with running water, a stove, and an empty refrigerator; you can cook in such a kitchen of course, but you must bring your own vegetables, pots, containers, and everything else you need, including cabinets for storage. An ecosystem, on the other hand, is like a furnished kitchen with a stocked refrigerator; you need only your desire, maybe a recipe too, and you can cook any kind of meal in the kitchen. The ecosystem provides you with everything you need—all the ingredients, all the utensils, all the containers, all the storage space, and more—to cook complete meals from beginning to end.
The Meteor ecosystem includes a seamlessly integrated frontend, backend, and database; a well-conceived isomorphic API linking the entire core system as well as linking third-party smart packages; and the tools and managers. The stocked Meteor kitchen—the Meteor ecosystem, with all the vegetables, cabinets, utensils, and ingredients—allows you to season, cook, and enjoy: setup, develop, and deploy.
Incidentally, you don’t have to deploy or host your Meteor apps with Meteor; you can use any other service provider or deploy your apps to your own server.
Alternatives to Meteor
The alternative to an IDevE (Isomorphic Development Ecosystem) is either an MDevE (Multifarious Development Ecosystem) or an MDevE Generator. An example of MDevE is Mean.js, which combines multifarious (i.e., of various types—different APIs: MongoDB, ExpressJS, AngularJS, and Node.js APIs) libraries, frameworks, and tools to create a development ecosystem somewhat similar to Meteor. Though the APIs are multifarious (not isomorphic), they are still integrated, such that Mean.js presents an integrated ecosystem like Meteor. Mean.io, which is nearly identical to Mean.js also deserves a mention as an MDevE.
Derby.js, also an alternative (though not a viable one as of November 2014) to Meteor, is the only other MDevE I am aware of; it presents an integrated ecosystem like Meteor and Mean.js, but Derby is simply incomplete and buggy at this juncture, and its documentation and examples need much work.
An example of an MDevE Generator is Yeoman, which allows you to easily use the command line to generate MDevE ecosystems like Mean.js. Indeed, Mean.js (an MDevE) and Yeoman (an MDevE Generator) are viable alternatives to Meteor.
Another IDevE like Meteor is Hoodie.js, a new open source ecosystem almost as ambitious as Meteor. But like Derby.js, Hoodie has a long way to go to be considered a viable alternative to Meteor. We can justly conclude then that Meteor is the only viable IDevE available today.
What Specifically Does Meteor Offer Developers?
As I noted above, IDevEs (like Derby.js and Meteor), MDevEs (like Mean.js), and MDevE generators (like Yeoman), pushing beyond modernity, offer developers similar automation, configuration, and suite of libraries, frameworks, and tools. Meteor, in particular, offers developers much more than those technologies, though, and, arguably, its seamlessly integrated ecosystem has no equivalence today, as you will see from the list of features outlined below:
- Meteor not only has a one-step installation for configuration and setup, but it also has anisomorphic API, which refers to using the same code on the frontend or backend, or even for mobile and web apps. This saves developers hours, perhaps even days and weeks, since there is no need for developers to wrestle with installing, configuring, and learning disparate libraries, module managers, multifarious APIs, drivers, and the like.
- It offers not only a front-end framework, like Backbone.js, but also a backend that seamlessly integrates with the frontend, and an easy-to-use API for communicating between the two; this provides developers with straightforward, no-fuss client-server data management (Collections, Models, etc.), server-side methods, and server session management.
- It provides not only bidirectional persistent communication (like socket.io), but also simplified reactive programming (like Bacon.js). The reactive programming library works in conjunction with the front-end framework to reactively (that is, instantly and continuously) update the UI whenever dependable data or variables change. Moreover, a Meteor community developer has implemented the Meteor front-end templating engine on the server, providing server side templating for Meteor. I should caution that this implementation is still in its infancy.
- It offers not only a stack that includes MongoDB database (with PostgreSQL and others planned), but also a front-end representation of MongoDB, called Minimongo, written entirely in JavaScript and available in every connected client. Meteor integrates the two (MongoDB on the backend and Minimongo on the frontend) in a well-conceived manner to mitigate latency, a concept called latency compensation. This results in considerably faster page updates and reloads, leading to a more satisfying user experience for developers and end users alike.
- It not only has a standardized Mongo API on both the frontend and backend, but it also has Oplog tailing for MongoDB, resulting in applications using substantially less server resources.4
- It has a standard front-end router (created by a Meteor community member) that implements the best features from other popular front-end routers, and this router also provides server side routing and includes a familiar API like Express.js’s routing API, even allowing for connect middleware, RESTful endpoints, and the like.
- It has a lightweight front-end framework, Blaze.js, that has a templating engine thatsupersedes Handlebars.js, with a rendering engine similar to the WIP (Work in Project)HTMLBars. I should note that Blaze is neither as feature-rich and robust as Ember.js nor as expansive and extensible Angular.js.
- Its integrated live browser reload (also known as hot code load and hot code push) not only automatically reloads your live web page whenever you make development changes on the frontend (HTML, CSS, images, JavaScript, etc.), but it also automatically refreshes just the necessary DOM elements on the page (without reloading the entire page), even when there are dependent changes to data on the backend (MongoDB) or frontend (Minimongo).
- It comes with requisite core packages to handle minification, preprocessing, concatenation, OAuth and custom user authentication (signup, login, forget password, etc.)., emailing, and coffeescripting; packages for popular frameworks like bootstrap, backbone, and jQuery; and even a package for SEO compatibility.
- It has its own command line tool that provides many of the functionalities provided by tools such as grunt, NPM, NVM, and the like. And if you add EventedMind’s em5scaffolding tool, you also have some (though not most) of the functionalities provided by popular scaffolding tools prominent in Rails and Yeoman.
- It allows you to use NPM modules and it provides its own build system (a custom package manger) that transcends NPM, providing nearly all the worthwhile and crucial NPM functionalities and more. You can install third-party or custom Meteor packages from atmospherejs.com, the official repository for Meteor packages. So you have access not only to NPM’s 98,000+ modules, but also to Meteor’s AtomophereJS 2600+ smart packages.
Let’s allow Geoff Smith, one of the founding members of Meteor, to expound on the advantages and goals of Meteor’s package manager:
-
The main [goal] is “Isomorphic JavaScript.” This has come to refer to JavaScript code that can run equally well on the client or on the server, meaning that you can write your JS once and run it anywhere…you can add the http package and use the HTTP.get() function on both the browser and the server. It works everywhere, so now your Facebook friends-fetching code can be used anywhere in your app.6
-
Two-level namespace, where packages that are “safe bets” (widely used, mature, supported, tested) get a short name like “forms”, and experimental, up-and-coming, or personal packages get a name prefixed with the author’s name, like “gschmidt:forms.7
-
The package system needs to integrate nicely with Meteor’s asset building/bundling system.7
-
When you update to Meteor [0.x.x or 1.x.x], you’re pulling a new set of core packages, which are guaranteed to work together (because we’ve tested them, a lot!) We want to keep this experience, where you don’t have to micromanage the versions of all of your packages, and where “meteor update” always gives you a consistent known-good snapshot.7
-
- It uses synchronous style coding, courtesy of the Fibers JavaScript library. This provides an easy to read code structure that many find more appealing than the asynchronous structure of callback functions, common in most JavaScript frameworks. I should caution that you must pay close attention to the section in the road map that deals with making async calls in Meteor because many seem to have trouble when making async calls in Meteor.
- It even provides support for mobile apps through Cordova Phonegap integration. You can easily deploy your Meteor app as a mobile app, using these simple commands:
meteor run ios “runs your Meteor app in an iOS simulator and starts the server.”8
meteor run android “runs your Meteor app in an Android simulator and starts the server.”8
I should note that I have not tested the mobile support and it appears to be embryonic as of October 2014. Watch a demonstration. And read the documentation.
If you are wondering, hot code reload does work on iOS apps. Apple approved this functionality for apps in the AppStore.9
- Meteor takes a proactive approach to security, reportedly with a core developer dedicated to addressing security.
- It has an official testing framework, Velocity,. With Velocity, you can use your favorite testing frameworks like Jasmine or Mocha, and run acceptance tests with Selenium.
- Finally, it not only has a team of dedicated and capable engineers with a vision for changing the world (nearly every team has that), but it also has a lovely bank account:$11.2 million in funding10 (hardly any team has that). This essentially secures Meteor’s stability for the near future, guarantees frequent updates and timely responses to Github issues, and ensures constant interaction with the community (well, when they think it necessary anyway).
Best Text Editors and IDEs for Meteor
You will develop Meteor applications easier if you use an IDE like WebStorm 9, the only IDE that supports Meteor. Watch this WebStorm/Meteor 9 tutorial that shows you how to use Meteor with WebStorm:
You should also watch these WebStorm tutorials to learn a bit more about WebStorm. While not the most comprehensive tutorials, they do teach you a thing or two.
Sublime Text is also an outstanding editor for building JavaScript applications, and you can use it to develop Meteor apps.
Should You Be Excited or Skeptical About Meteor?
A Chorus of Praise and Appreciation for Meteor
Justifiable Criticisms, Known Limitations, and Frequently Asked Questions about Meteor
Some developers have raised a number of justifiable and unjustifiable criticisms about Meteor. While some of the concerns and criticisms have been either debunked or resolved in recent versions of Meteor, some remain justifiable. The frequently asked questions, known limitations, and justifiable criticisms about Meteor follow, along with a comment or an answer to each:
Frequently Asked Meteor Questions
- Q: Can I build mission critical applications with Meteor?
A: Sacha Greif, Coauthor of DiscoverMeteor
Meteor is still beta software, but it’s actually very close to the 1.0 release. So within the next few months, it’ll probably be safe to assume that Meteor is ready for whatever you can throw at it! - Q: What kinds of applications can I not build with Meteor?
A: Sacha Greif, Coauthor of DiscoverMeteor
Meteor isn’t great for anything that’s mainly static content, like blogs or simple static sites. As a general rule, Meteor is great for apps, but not for sites. Another factor to consider is the fact that Meteor doesn’t do server-side content generation yet, meaning that your app won’t work without JavaScript enabled. - Q: Do you have proof of Meteor holding up and scaling well in production?
A: (?? Awaiting an official response from Meteor Development Group)
- Q: What big companies or funded startups are using Meteor?
A: Sacha Greif, Coauthor of DiscoverMeteor
There’s a list on the Meteor site, but it could probably be updated. Two companies not mentioned there are LookBack and Respondly. - Q: Does Meteor scale at least as well as Rails in production?
A: (?? Awaiting an official response from Meteor Development Group)
Known Meteor Limitations
- Meteor works only on Mac, Linux 64, and Linux 32.
- It does not officially support Windows, Solaris, and Freebsd.
- It supports only one database: MongoDB.
- It has no support for sharding on MongoDB.
- Its frontend framework does not have reusable UI components.
- It has only partial support for Redis.
- It does not work well with SEO, even with its Spiderable hack.
Justifiable Meteor Criticisms
- Dnprock: Reactive template is nice but can lead to very hard to debug issues…. There’s no really good way to debug reactive update trigger.
A: (?? Awaiting an official response from Meteor Development Group)
- Lack of generators when compared with Rails and other frameworks
Neya: We’re talking about the basic reason why people choose rails: Productivity (Getting stuff done) and getting your product out to the market. I think in this perspective nothing beats rails:rails new blog rails generate scaffold Post title:string text:text rails s How many lines of actual code I have written so far to actually get my basic blog idea up and running? None.
A: (?? Awaiting an official response from Meteor Development Group)
- Many [Atmospherejs.com, Meteor package management] packages don’t have the most vital information; the readme file for most packages is missing.
A: Tom Coleman, Developer on Atmospherejs.com and Coauthor of DiscoverMeteor
This is up to the package author to resolve, but the core Meteor packages are currently in the process of being “readme-ized” by MDG (e.g. Oauth Encryption) - Its front-end framework, Blaze.js, is neither as feature-rich and robust as Ember.js nor as expansive and extensible as Angular.js.
A: (?? Awaiting an official response from Meteor Development Group)
Learn Meteor Now If…
The noted Meteor limitations and criticisms are negligible when compared with the noted benefits, unless you absolutely abhor MongoDB or it cannot scale well for your particular use case.
Furthermore, Meteor is nearing version 1 (relatively stable), websites are already using it in production, you will no doubt develop applications quicker with it than you will with many competing technologies (after you learn it properly), you will be a more attractive job candidate (especially in the coming months), and you will be able to develop nearly any kind of application with Meteor that you can think of.
Accordingly, you should learn Meteor now if:
- you plan to develop a startup (not a native mobile app) now or within the next year,
- you have to develop a real-time, RESTful, or single page web app
- you want to build an MVP (Most Viable Product) or a prototype of a large application
- you are now learning to code and you want to build your first web application (Learn JavaScript Properly first)
- you are a javascript developer (node.js, or any of the many frontend JavaScript frameworks),
- you are convinced that Meteor provides the best and most complete ecosystem for building web applications that work on both desktop and mobile clients (though mobile support is still embryonic as of October 2014)
- you are a Ruby on Rails or PHP or Java developer and you want an alternative web technology to help you build applications and prototypes faster (note that Meteor lacks some of the generators prominent in Rails)
- you are a hacker
- you are cool and you like to be on the forefront of technological advancement
- you think you are not cool (this means you are cool)
- you consider yourself an old-school or hardcore programmer, and you dislike modern frameworks that are trying to make it easier to build applications; stay abreast and embrace the now and the future, my friend
- you plan to build your own JavaScript (or some other language) framework or ecosystem
- you want to learn or teach modern web application development
When to Consider Other Technologies Over Meteor
If you want to work for a large firm as a front-end developer, you may be better off learning a popular front-end framework like Angular.js, Ember.js, React.js, or Backbone.js. You should also learn one of these front-end frameworks if you want a high-paying front-end developer job soon, since, as you will see below, while Meteor jobs exist, you may not find as many opportunities for a Meteor developer as you would for an Angular.js or Backbone.js developer.
If your company has a strong and talented group of backend developers developing the backend, and the front-end is developed and handled separately from the backend, you may want to focus on using one of the noted front-end frameworks on the front-end.
If you need a robust SQL database like PostgreSQL or MySQL for your application, you may want to choose a different technology like Rails (if you know Ruby) or Node.js (if you know JavaScript), instead of Meteor, since Meteor doesn’t support these databases as of November 2014.
And, as Sacha Greif, coauthor of DiscoverMeteor, notes:
Meteor isn’t great for anything that’s mainly static content, like blogs or simple static sites. As a general rule, Meteor is great for apps, but not for sites. Another factor to consider is the fact that Meteor doesn’t do server-side content generation yet, meaning that your app won’t work without JavaScript enabled.
Moreover, not many large firms (if any) are using Meteor as of November 2014, so keep this in mind before you commit to learning Meteor now.
Meteor Developer Jobs
The biggest downside to learning Meteor today is that there doesn’t exist an abundance of Meteor jobs for Meteor developers. Unlike job postings for technologies like Ruby on Rails, Node.js, Backbone.js, and Angular.js (especially), comparatively fewer Meteor jobs exist today. And this shouldn’t be surprising since Meteor is a younger technology than those noted. This shouldn’t deter you from learning Meteor, however. Consider that you can find Meteor jobs now (see the links below) and large companies will soon discover that the Meteor magic can result in considerable productivity and financial gain, not to mention a boost in employee (developer) morale.
Meteor jobs:
For the most up-to-date Meteor jobs, follow MeteorJS Jobs on Twitter:
@MeteorJobs
Meteor Jobs discussed and advertised on Meteor Talk Google Group
Most Helpful Meteor Resources
Somewhat surprisingly, given Meteor’s relative newness, you can find quite a few helpful Meteor blogs and websites. Knowing who, which Meteor guru, to follow and which websites to rely on requires a bit of research, so I will save you some time.
I don’t want to overwhelm you with Meteor resources (many are popping up almost daily, and most seem to overlap), so I will keep the list brief with those that I find most helpful:
- Crater.io: A Hacker News style news site for Meteor. Get the latest Meteor news, updates, and blog posts from around the web.
- Meteor Cookbook: An exhaustive resource with invaluable Meteor tips
- Meteor Tips: Here you can find a number of quality Meteor tutorials from an author who always writes with the patience and diligence of an elementary school math teacher.
- Meteor Help: This site has you covered from head to toe in Meteor resources. What else do you need?
- Discover Meteor Blog: A reputable blog from the acclaimed authors (Sacha Greif and Tom Coleman) of the DiscoverMeteor book.
- Meteor Talk: Ask questions, discuss, share, meet up, and more
- Meteor Academy: Be inspired and learn from a transformational Meteorite bursting through the atmosphere
- The Meteor Podcast: Kick back with a cup of coffee and enjoy; I do.
- MeteorPad: Write Meteor code in the browser, like JSBin
Other Noteworthy Meteor Resources
- Follow Meteor.js (@meteorjs), EventedMind (@EventedMind), and DiscoverMeteor (@DiscoverMeteor) on Twitter
- Get on the Meteor mailing list. Go to this link and scroll down to “Get on the mailing
list”: https://www.meteor.com
Notable Hackers in the Meteor Community
To keep up with the latest Meteor news and happenings and to learn how to optimize and scale your production Meteor apps, you need to know and follow this gentleman:
Arunoda Susiripala
Arunoda (@arunoda) is arguably the most prominent Meteor hacker. He is also editor of the preeminent Meteor newsletter MeteorHacks.com, and founder of Kadira.
Meteor Cred:
He developed some important Meteor smart packages that help Meteor applications perform better (i.e., increase speed, scale, and use less server resources) in production. For example, he developed Smart Collections (it speeds up Meteor by using MongoDB Oplog; Meteor’s core developers have since implemented much of Smart Collection’s technology into Meteor’s core),Fast Render (it speeds up pages by as much as 10X, and it has been incorporated into Iron Router, Meteor’s primary router), Meteor NPM (it allows Meteor developers to easily use NPM modules in Meteor), Meteor Up (it allows you to deploy your Meteor apps to your own server),Meteor-SSR (it allows you to render Meteor templates server side, a huge limitation in the current version of Meteor), and many more packages crucial to helping your Meteor application perform and scale well in production. In addition, his Meteor performance and monitoring startup, Kadira, is used by many production Meteor apps.
Sign up for his Meteor weekly newsletter.
(This is all you need, really, to keep up with latest Meteor happenings.)
MeteorHacks.com
Chris Mather (who created the indomitable Iron Router, and who probably has a clone because of all the seemingly insurmountable Meteor work, Meteor teaching, and Github issues he attends to); Tom Coleman (whose firm developed the official Meteor packaging system, Atomospherejs.com, and who created the first Meteor router, the first Meteor packaging manager and repository, and many useful Meteor packages); Abigail Watson (who maintains the exceedingly useful Meteor Cookbook, noted below, and other useful Meteor projects); and the versatile Sacha Greif (without whom, arguably, Meteor would not be as popular as it is today; every startup and open-source project need a Sacha Greif, for he can evangelize your technology like no one else can) have all contributed significantly to the Meteor community and ecosystem.
I know many others have contributed perhaps just as much if not more, so please forgive me for failing to list those names here. I may likely add more names as I am informed of them.
Meteor Tutorials Needed
- How to Handle Errors in Your Meteor Application
- Meteor Accounts UI Overview
- Comprehensive Meteor Tutorial on Making Async Calls
- Comprehensive Tutorial on Meteor Packages (for Meteor Version 0.9.x)
Notes
- Poor college student taught herself Meteor
- Meteor beginner built virtual rubric cube in a week
- Tattoo artist (non-programmer) built Meteor POS application for his business:
- How to Scale Meteor.js Apps
- EventedMind em Scaffolding Tool
- Why Meteor Created a New Build System
- Some Considerations in [Meteor] Package System Design
- Meteor Cordova Phonegap Integration
- Apple Allows Hot Code Push in Mobile Apps
- Meteor’s new $11.2 million development budget
Acknowledgments
- Thanks to Robin Coffman—perhaps the best editor, no doubt a fastidious and exceptional editor—for her punctilious effort editing this article.
- Thanks also to Phil Howley, Tony Homer, and Nathan Burkiewicz for thoughtfully taking the time to point out some typos and errors in this article.
Learn Meteor Properly Overview
For the ultimate study guide, we are using a book, a paid screencast, and some free online resources. Don’t worry; I managed to negotiate 35% discount off the paid screencast and 20% off the book for you. (No, I don’t benefit in any way when you buy these resources.). So the total for the two resources is $50.05.
For the more affordable study guide, we are using one paid screencast and some free online resources. With the noted 35% discount, the screencast costs just $18.85. So that’s all you need, at least $18.85, to learn Meteor properly.
What’s the Difference Between the Two Study Guides?
The ultimate road map guides you through building a sophisticated social web application, while the more affordable road map does not guide you through building a specific web application. Other than that and other than the difference in cost for the resources, the two road maps are exceedingly similar; they both use the same screencasts from EventedMind and some free online articles.
Be Empowered
After you complete the study guide and experiment with Meteor, I invite you to use Meteor to develop a web or mobile app. And use your completed app to generate passive income ($) or massive income ($$$$), to empower a community, to prove Meteor’s effectiveness to your boss or colleagues, to solve world problems (I have many ideas I am eager to share with you), to solve problems among your peers or in your neighborhood, to get a job, to create the next Instagram or Facebook or any startup, or to do just about anything you like. If you do build something with Meteor (it needn’t be the next Facebook or Hacker News clone), please post a link to it in the comments below.
Prerequisite
You have to know JavaScript to develop applications with Meteor. Don’t make anyone mislead you. First, if you haven’t done so already, read the entire article above to understand what Meteor is, what you can do with it, and what it can do for your career. Then go Learn JavaScript Properlyand come back and learn Meteor by following the road map below.
What You Will Learn
In the ultimate road map, you will learn how to build a relatively sophisticated web application (a feature-rich, real-world example of Hacker News—much better, in fact); how to use Meteor frontend framework; how the DDP protocol is used to communicate between the server and the client; how to implement collections and subscriptions (the data models for Meteor); how to use the latest (ver 1.0) version of IronRouter, the main Meteor router; how to create and use packages; and how to use every part of the Meteor ecosystem necessary for developing world class applications. We will dig deep, learning the basics and the digging deeper into each topic. You will learn more than you need to know to develop the social news application, but enough for you to feel comfortable using Meteor on your own.
In the more affordable road map, you will learn nearly everything taught in the ultimate road map, except you will not build a specific web application.
Duration: This course will take approximately 6 days (about 40 hours) of studying and coding to complete.
The paid resources for this road map:
Use this discount code (jsissexy_learn) to get 35% off the EventedMind screencast. And use this discount code (JAVASCRIPTISSEXY) to get 20% off the DiscoverMeteor book when you checkout:
http://discovermeteor.com/javascriptissexy
- Discover Meteor book ($39 $31.20)
- EventedMind screencasts ($29 $18.85)
Important Note: Don’t just watch the videos and read the book; be sure to write your own code and build the application as you follow the lessons.