Abandoning the good ship Microsoft

Over the past 10+ years I’ve been building websites on a variety of Microsoft stacks. This is all very good for corporates and businesses with a Microsoft infrastructure in place, but when it comes to building and launching personal projects with no funding you start to notice the costs. So I’ve decided to look for alternatives.


The LAMP stack (Linux, Apache, MySQL, PHP) is the obvious place to start. It is well established, stable, and has a huge history and active online community. But, it doesn’t really satisfy my desire to learn something new. Sure, it would be new to me but it has been around since the late 1990′s. That’s not new!


Over the past few months I’ve been hearing more about Node.js, a webserver using JavaScript as the server-side language. It is supposedly very scalable, and very light on resources. Okay, I’m interested.

I also know JavaScript pretty well; I’ve been using it client-side for over a decade. Okay, I’m very interested.

This doesn’t mean to say that there’s no learning curve. I’ve got a hell of a lot to learn.

Node.js can now install and deploy on Windows, but that goes against the point of saving deployment costs. I don’t want totally different development and production environments, so I’ll be starting from the ground up.

Much to learn

As a minimum I need to learn:

  1. Operating system – Linux (probably Ubuntu)
  2. Webserver – Node.js
  3. Database – MongoDB (or perhaps CouchDB)

And then moving forward to increase stability / usability I’ll need to look at additional pieces such as:

  1. HTTP / Proxy server like NGINX
  2. Frameworks like Express
  3. System monitors
  4. Server cache e.g. Varnish

The journey through 2012

I aim to have my first site/app up and running within a year from now. I know this doesn’t sound very ambitious, but I do have a full time job and a young baby also competing for my time so I need to remain realistic!

I’ll be charting my journey here under the category Knowing Node.

So … lot’s to do in 2012. And first things first, I’ll be looking at the operating system. Linux, I’m heading your way…