What the Heck is Meteor?

From the Meteor Website

Meteor is an ultra-simple environment for building modern websites. What once took weeks, even with the best tools, now takes hours with Meteor.

That’s quite a claim!

While I agree that it is certainly somewhat faster to build in Meteor (once you get going), unless it’s a very simple app with maybe a single database table, I think that’s a bit of an exaggeration.

That said, I recently started converting an in-house Django application to Meteor.

The application I started converting was the WebSauce SEO Tool Kit that I’ve been using for years to do Search Engine Optimization for our clients. Since I was the only one using it, it had an extremely intuitive interface; the command line. This led to things like:

# seo ranking -h

usage: seo ranking [-h] [-of OUT_FILE] [-sp SEARCH_PHRASE] [-l LOG]
[-c COMPETITORS]

optional arguments:
-h, --help show this help message and exit
-of OUT_FILE, --out-file OUT_FILE
output file to which to write csv
-sp SEARCH_PHRASE, --search-phrase SEARCH_PHRASE
search phrase
-l LOG, --log LOG where to write the ranking log
-c COMPETITORS, --competitors COMPETITORS
file containing list of competitor's home pages

  • Nice!

All of the tools were written in Python, with a Django backend. Thing is, I never got around to putting an interface on it. I’ve never been much of a “front end” guy, and it was just so much code to write to get things to update when the background processes finished and so on.

Enter Meteor!

With Meteor, the front-end is automatically updated whenever the database changes and visa versa — this is called a “reactive” system.

Since Meteor uses mongoDB, a NoSQL database, I didn’t have to spend a whole lot of time defining database schemas, relations etc. in order to get started writing code.

Since Meteor’s built on top of node.js, I didn’t have to do much of anything other than install node.js and meteor to get started.

Then I just started writing code!

To make a long story short, I was able to get an interface up and running, and get quite a lot of the tools’ functionality done in a couple of weeks.

There are also lots of packages (3159 and counting) to fill in the gaps at Atmosphere, the semi-official place to get Meteor packages.

The learning curve has been quite steep, and some packages have been quite buggy, but that’s to be expected for a ‘just turned 1.0’ release and package ecosystem.

So far, so good. I’m looking forward to finally getting some of the great WebSauce tools published and, with Meteor, that should happen sooner rather than later!