Adam Johnston

My First Week with MeteorJS

For quite some time I have wanted to pick up a Javascript front-end framework. I’ve played with AngularJS with a RESTful API back-end, dabbled with a complex Backbone & MarionetteJS web-app and even started on the ReactJS tutorials. That was when I heard about MeteorJS.

Choosing a new Javascript technology to learn and work with is like being in the middle of a school of sharks. You can try and reach out and grab one but you could end up losing an arm. It’s like high five-ing an articulated lorry, Javascript frameworks just move so fast. However after reading a little about MeteorJS it seemed like the cuddliest shark to swim with.

What I’ve loved learning MeteorJS

It’s all just Javascript. Meteor is built on top of NodeJS for it’s server-side capabilities. For the last couple of years I’ve wanted to work much more closely with any kind of Javascript framework or library (I am usually found building CSS architectures, not building whole applications). MeteorJS allows me to build web-apps, work with a new framework and learn more Javascript at the same time, all in a single killer package.

While I am a front-end developer I have become quite comfortable with building Ruby on Rails apps. MeteorJS is similar in that it is a full stack development framework. It’s very easy to get a new project created and running just like with Ruby on Rails. It even has it’s own packages which can be found on Atmosphere which could be considered to be similar to Ruby’s Gems and are just as easily added to the project.

MeteorJS is an Isomorphic Javascript platform. In plain English that means it uses Javascript on both the server and client side and shares the same code between the back-end and the front-end. A great example of this is a collection, the server and the client collections can be written in one place but act differently depending on the environment. You can find out more about other Isomorphic Javascript libraries and frameworks here.

MeteorJS’ live updating is a joy to behold and was one of the many little ‘wow’ moments I had when I saw it happen in real time. Having a bunch of different devices connected to my localhost then making a change on one and to see them all update instantly made me more giddy than I should really make publicly known.

I was surprised to find out that MeteorJS has a very strong community, good documentation and plenty of other material out there (Although I have seen a few Stack Overflow questions that needed updating since MeteorJS has changed quite a bit before it hit it’s recent v1.0 release) and the MeteorJS London Meetup was fully booked with over double as many people on the waiting list. That’s feels impressive to me for such a young technology.

Lastly, MeteorJS has simply been fun, relatively easy to learn so far and fast to get started with new projects. As I was halfway through my reading I decided to stop what I was doing and just put myself to the test. I created a new, very basic todo app and I was incredibly happy with what I had built with just what I could remember and without the aid of any learning materials. For me this is the biggest positive MeteorJS could have on me.

I have no doubt there will be plenty more benefits to MeteorJS as I become more knowledgeable about the framework but just for now, in this short week, these have been some that have stuck out for me.

MeteorJS learning material

I wanted to take the opportunity to list a few learning materials that I have found very useful in the last week and a bit. Some are free, some aren’t but I believe your money will be well spent.

Your first Meteor application

This is a short book that I picked up very cheaply on Amazon but you can get even more cheaply (free!) online. It doesn’t go into too much detail but it was more than enough to peak my interest and dive deeper in.

Discover Meteor

This online resource gets listed in several places and was my next step. It covers many more aspects of MeteorJS and was a worthwhile read, one I will probably read through multiple times due its sidebars (extended reading).

Evented Mind

If reading is not your thing then Evented Mind is more likely to be right up your street. It’s not free but has several hours of screencasts. The videos are still being updated, as of writing the latest being Feb 28th 2015. However MeteorJS development moves fast and there are videos that may be out of date.

MeteorJS docs

The MeteorJS documentation has been very useful for getting more information and having an understanding of what some of the packages such as Accounts-Password-UI abstract away.

Percolate studio blog

A great collection of MeteorJS blog posts.

The future

So far I am not regretting my decision to learn MeteorJS and there’s still plenty to learn and do. One week is nowhere near enough time to become an expert in anything but I feel I am currently on the right track. Here’s a few things I plan to do shortly:

  • Continue to learn more of MeteorJS and it’s various aspects fully. Hopefully this’ll mean I will be able to write more about what I learn with a little more authority.

  • Try ReactJS with MeteorJS instead of MeteorJS’ default templating solution, Blaze. It’s not that I don’t like Blaze, it seems perfectly fine but I would like to learn ReactJS also and you know, two birds, one stone.

  • Learn to test using Velocity either with Jasmine (unit and integration testing) or Nightwatch (acceptance testing). I am much more equipped to write tests using RSpec so learning a Javascript test framework is now a priority.

  • Build a new MeteorJS app based on an old Ruby on Rails app I built several years ago called Checkr, it’s a little crude but it was a great learning experience.