Best Learning Resources for Meteor.js
Meteor.js is an open-source platform built on node.js for rapidly creating reactive web and mobile apps. It is designed to allow programmers to create applications in a modern fashion, using up-to-date paradigms, most importantly reactive programming. Meteor became v1.0 on October 28th, 2014.
Together with Manuel I am the author of the Manning book Meteor in Action. It’s for everyone coming from traditional server languages like Ruby, PHP, or Java and even front-end engineers looking to cover the full stack. All you need are JavaScript fundamentals and HTML/CSS basics. Click here to get your own copy of Meteor in Action.
Why Meteor?
- Since you’re here, you probably don’t know Meteor that well. Yet. Let Manuel tell you, why Meteor is the best thing that could happen to your startup.
- There is also an official mission statement behind Meteor.
- Dan explains both the business case as well as the engineering case for Meteor.
- One of the best things about Meteor is its reactive nature. The Reactive Manifesto sheds some light on why reactiveness is the way to go.
- To sum things up Meteor is the ideal start into web programming for beginners.
JavaScript
First, you need to know JavaScript, obviously. Not any frontend library like jQuery or MooTools, but the actual language (of course it doesn’t hurt to know a bit or two about libraries, esp. jQuery).
- If you only have a look at one link, this should be it: A JavaScript Primer for Meteor.
- Should you have a little more time on your hands, work your way through the interactive tutorials at Codecademy.com.
- Complement your learnings by a good beginners book like Eloquent JavaScript by Marijn Haverbeke. Hint: The online version is not only free but has some great interactive code examples.
- Alternatively you can try the course over at JavaScript.is (sexy) to learn JavaScript properly.
- The Mozilla Developer Network has a plethora of awesome resources on JavaScript that serve as a nice reference.
- One of the most confusing concepts when I started is Callbacks. Read up in plain english what Callbacks are and how they’re used to avoid Callback Hell(although Meteor hides this beautifully from you it doesn’t hurt to know what’s happening behind the scenes).
- If you’re already an advanced JavaScripter, you might want to read up on JavaScript design patterns.
- Badass JavaScript will also help you get to the next level for sure.
- And before you head over to Meteor make sure you have seen at least some of the material Douglas Crockford put together. The videos are also very valuable if you’re starting out or want to improve your skills.
General Meteor Resources
Once you know JavaScript basics you can dive into Meteor. Since the aim of Meteor.js is to radically simplify app development, you will very quickly be able to see good results.
- First you head over to the Meteor website, check out the examples and most importantly the official Meteor documentation.
- The next best thing to do is head over to the Meteor YouTube channel.
- Meteorhelp.com is probably the greatest place on the web for getting an overview of all available Meteor resources. Plus it is curated by users, which means you.
- The unofficial Meteor FAQ covers a lot of topics you will want to know.
- An official Meteor manual is also in the works – straight from the horse’s mouth.
- Meteorpedia is a great, officially sanctioned Wiki resource.
- The Meteor Cookbook probably has a recipe or two for you since it is based on over 12 months of emails and discussions between active Meteor developers. Also available as a gitbook.
- You can find over 1800 packages for Meteor on Atmosphere.
- Should you get stuck with a specific problem, there’s always StackOverflow.
- Did you know that Reddit also has a channel for Meteor?
- If you like to hang around in chat rooms, you can also join the IRC channel for Meteor on freenode.
- Should you decide you can wait a wee bit longer, the Meteor Google Talk group might be best for you.
- EventedMind offers video classes that will keep you busy for quite a while.
- Some more advanced resources can be found at Arunoda’s BulletProof Meteor.
- If you need something more beginner-friendly, head over to David’s Screencasts for beginners instead.
- During development you should consider the Meteor Security Resources by Emily Stark.
- To take a peek into the future, check out the official Meteor Roadmap on Trello.
- Another collection of great learning resources on Github.
Tutorials
- Learn Meteor Fundamentals and Best Practices by Andrew Scala.
- Writing your first Meteor application by Sebastian Dahlgreen.
- Kevin Hennessey provides a great intro to Meteor, Single Page Apps, and Windows.
- Design a Complete Authentication System with Meteor
- Tutsplus has a video tutorial on Single Page Web Apps with Meteor.
- There is also a 17 episodes playlist on Youtube walking you through working with Meteor by Robert Lowe.
- Building a customized accounts UI for Meteor.
- Manuel seems to know all about Iron Router and he walks you through Hooks in Meteor.js Iron Router Filters, Before and After Hooks.
- Understand
DepsTracker to know Why your Meteor app is not updating reactively. - Making things pretty using visualization via d3 is explained by Kyle Oba.
- If you have lots of data you probably need a pagination system with infinite scroll.
- At some point you may wish to know more about MongoDB and how to structure the database properly. There are some major philosophical differences if you are used to SQL-thinking.
- Let Josh Owens tell you how to optimize your Mongo database for Meteor.
- Hack and Lunch Videos from Differential will keep you busy for almost 90 minutes each, but it is worth it.
- Need something more concise? Take the Meteor Cheat Sheet.
- Make your app multi-lingual using Internationalization (i18n).
- Create a polaroid app with Meteor, CoffeeScript, and Famo.us.
- How to Get Started Building Mobile Apps With Meteor teaches you how to use Cordova in combination with Meteor to create apps for iPhone and Android.
- Tutas Labs offer a course on Famo.us and Meteor Integration.
- Meteoric Projects has a thorough tutorial on how to make a hybrid mobile app with Meteor + Ionic.
- Get started with Meteor and Cloud9 IDE by John.
- Phuc has an illustrated guide to everything you need to know about async.
- You can put sync to work for queuing and scheduling background jobs in Meteor.
- Peter wrote a nicely illustrated tutorial for Building Real-Time Web Applications with Meteor
- Learn how to create a reactive Google Map at Meteor Capture.
Code Examples
Sometimes it is best to study some existing sources to become more familiar with coding conventions, patterns, styles, and what not. Here are some interesting repositories you can learn from and -who knows? – possibly even contribute to.
- Get started coding using a Meteor boilerplate. Also available in CoffeeScript.
- BrowPie shows visitor stats as Browser charts.
- crowducate.me – an open education platform (view on github)
- fortnight.io – A scoped, heatmapping, load-balancing todo list.
- Reaction is a full e-commerce solution.
- Repeeet making repeeet tweeting super simple.
- Telesc.pe is a hacker-news clone built entirely on Meteor.
- Weworkmeteor is a Meteor Job Board and Expert Directory written in Meteor.
- Meteor URL Shortener with several good practices in place.
- Dominus – a multiplayer game.
- Meteor Gift Ideas utilizes a package-only structure.
- Rrequest is an issue tracker written in Meteor.
- A full Trello clone in Meteor: Libreboard.
- Phanime is a modern anime database & social platform.
- Don’t forget, you can also check out the sources of Meteor itself.
Testing and Debugging
- Using Chrome you can make your life easier. Use it for Debugging JavaScript on the client.
- When debugging the backend remember, that Meteor runs on Node: How to debug Node.js.
- TDD, BDD, you think you know it all? Watch Ian Cooper educate you on a proper approach to testing.
- Testing Packages with Tinytest is a 10 minutes screencast by the folks from the excellent EventedMind.
- Laika is a testing framework for Meteor. Michael walks you through Laika testing in Meteor.js in Action: Create an App, Test With Laika.
- RTD is a test runner for Meteor. It’s exactly like having a continuous integration server on your machine.
- Perhaps you find that it is time to promote your Meteor project to a dedicated Continuous Integration workflow using Travis CI.
- Although not Meteor specific, JavaScript unit testing on steroids shows you how to use grunt.
- If you run your Meteor site on your own servers, you might want to do some load testing using meteor-load-test.
- Stephen ran into some performance issues with 15000 customers in a publications on the client side and wrote about a Meteor Alternative to MongoDB Full Text Search.
- Sam Hatoum who is one the of people behind Velocity has a great book on JavaScript and Meteor Testing.
Ready for Production
Once the coding is done and your app is tested, you want to go live. For that the following may be interesting:
- Advanced users will benefit from the Production Users’ Guide To Meteor.
- Things are running slow? Think about Improving the Performance of your Meteor JS projects by Stephen Pope.
- If you plan on hosting Meteor yourself, you’re best off to know a bit or two about running a node.js server in a production environment.
- Of course, Meteor runs on node.js. But how are the two linked? Check out Arunoda’s guide on how Meteor makes use of node.
- Putting nginx in front of your Meteor/Node server is also a good idea.
- How to deploy Meteor on Amazon EC2 by Julien Chaumond.
- The Phusion Passenger: Meteor tutorial is extremely helpful to get into production quickly on your own servers.
- Run Meteor without Meteor with Demeteorizer (basically just run Node with your Meteor project).
- Also check out Meteor Up, a command line tool that allows you to deploy any meteor app into your own server by Arunoda.
- Want Google to see you pages? Learn how to use the spiderable package to help you with this Screencast by EventedMind.
- Tune your Meteor.js application for SEO with these tips by Manuel.
- Jacob explains how he uses a combination of Meteor, Docker, and AWS.
- Arunoda, the expert for everything regarding Meteor performance, offers a course called Bulletproof Meteor that focuses on building fast and efficient apps.
Keep up to date
- Join a Meteor meetup.
- Subscribe to Meteor Weekly.
- Stay informed of the latest news on crater.io.
- Also Dominik Ferber brings you a daily dose of Meteor, which is more verbose than crater.io.
- If you prefer to listen, the Meteor Podcast might be what you want.
- Find interesting people to follow on Twitter by starting with the MeteorJS Twitter list.
- Use the hashtag
#meteorjob
to look for programmers and get retweeted by MeteorJobs. - Or you can post your own projects or profiles on Weworkmeteor.com.
Books
The internet is great for up-to-date information, but sometimes a book (on paper or electronic) provides better structure and didactic concept, so that you may wish to use one in the beginning to make the most of your learning experience.
- Discover Meteor is an excellent book written by Sacha and Tom, that will teach you all the basics you need. (Also, if you use this link here you can save 20% when you purchase the book!)
- David Turnbull has written a free-to-read tutorial for beginners called Your First Meteor Application.
- Testing Meteor is a book in the works by the folks behind the official Meteor testing framework Velocity.
- App from scratch walks you through building a foosball [sic!] app.
- Arunoda has written Meteor Explained – A Journey into Meteor’s Reactivity which contains not only useful but also some advanced information that is hard to find elsewhere.
- If you dread JavaScript perhaps using CoffeeScript makes your life easier. Check out The Little Book on CoffeeScript.
- Join the early access program and read the book I write together with Manuel. Have a look at Meteor in Action.
Built with Meteor
Especially if you’re just beginning your programming career the most convincing aspect to learn Meteor might be to showcase some of the applications using Meteor behind the scenes.
- Assistant.io – The Easiest Way to Schedule Meetings
- Illustreets – England’s best places to live
- MathFights – Test Your Math Skills In Real-Time Battles
- Pantheon by MIT – Mapping Historical Cultural Production
- Pintask – Task tracker with Kanban board, free for life + Custom extensions
- RalphChat – Web-based and iOS/Android Chat
- Reaction – Change the way you think about commerce
- Repeeet – making tweet repeating super simple
- Sonic Agile – A free agile Project Management tool that includes a real-time Backlog, Kanban, and Burndown Charts
- TangoEdit – Collaborative, cloud-based video editing
- Verso – The future of classrooms powered by Meteor & Phonegap
- Workpop was funded with almost $8 million dollars and is a job marketplace for hourly workers.
Know more? Did I miss some interesting resource?
Do you know any other resources that you find useful in getting productive with the Meteor framework? Let me know via Twitter or Email and I will add them here. If you care for a much more verbose list of resources I suggest you head on over and contribute to Eric’s list of Meteor Learning Resources on Github.