Q42.nl now runs on Meteor
When we launched the new Q42.nl website a little over a month ago, we just kind of threw it together in your average .NET MVC configuration because we wanted to get it out there. But we quickly stumbled upon a few inconvenient consequences. First of all, none of us who use a Mac as their primary development machine could easily work on the site. Second, deploying, while pretty easy thanks to Teamcity and a lightweight approach, still felt like too much work. After all, the q42.nl website is really just a static site where we write new pages ourselves in HTML (we know how, so why waste time setting up a CMS?). So these two reasons, together with being excited at the prospect of just running a site on Meteor because we can, drove us to port the site over.
But wait! What the heck is Meteor, anyway?
Meteor is an up and coming full-stack framework designed to make developing real-time websites and web apps really easy. What does that mean? It means we’re excited!
As Meteor is built on top of node.js, you just write Javascript on both the server and the client. And the rest is just good ol’ HTML and CSS! And, well, images and fonts and stuff.
Meteor does a lot of other pretty revolutionary stuff too. It has a functional reactive templating system that basically makes hacking the DOM manually like we’ve been used to the past 10 years redundant. Changes to your code trigger automatic refreshes in the browser, which may have been available to us for a while now (we even made a library called Live.js that does this a few years back), but this is the first time a development framework has come included with it. It also comes with a full database API called Collections that is both available on the server and the client. And its real-time nature means that anything that changes in the server is automatically and instantly transmitted out to all clients.
These features combine to make building fun, real-time, multiplayer websites a breeze. Actually, if you really want to get a good picture of what’s so great about Meteor, we recommend watching their screencast, as it gives a good overview.
So why use Meteor for the Q42.nl website? None of those features have any bearing on a simple informational site about a company that makes web apps, right?
Right. Well, almost. Like I said above, we were principally concerned with making it easier to work on the site. Meteor runs like a dream on Mac, and works fine on Windows (albeit unofficially). And deploying is as easy as typing “meteor deploy xxx.com” in your command line. Less than a minute later, your website is live, hosted by Meteor itself!
More importantly, though, running on Meteor is an experiment. We get to try out a bunch of new stuff, learn by doing, probably break whatever can be broken, and overall have a good time. And now that we’re running a real-time, Javascript-only framework with multiplayer support, who knows what Q42.nl can become? It’s a tool that we’ll release to the Q’ers. Then we just sit back and wait to see what happens next!
If you want to know more about Meteor, we will be hosting a meetup in the near future at Q42. Join the Meteor Meetup group for the Hague to be notified when we announce it!
PS. Meteor automagically minifies all the source code, so you won’t have much luck trying to read it on Q42.nl. To help you out, we decided to just release the source code to the site on Github, so you can read it there. And if you find something you think needs fixing, don’t forget to be a good open-source citizen and send us a pull request!