Building a Node + MongoDB Powered Blog on Windows Azure
This is a simple blog engine that I wrote in about three days time. I wanted to show off the power of Node.JS on Windows Azure, and also take advantage of our recent support for MongoDB in Replica Sets on Windows Azure.
Here are some of the tools I used
Front-end
- Foundation - a bad ass rapid proto-typing CSS framework that even a terribad designer like me can use to make awesome stuff. The design for this site took less than two hours.
- PageDown - a JavaScript markdown converter and editor produced by the great minds behindStackOverFlow.
Back-end
- IISNode - The secret sauce that allows Node.JS applications to be run inside of IIS.
- MongoDB Replica Sets for Windows Azure - 10gen more or less rewrote their entire storage engine so it could work under a load-balancer with transient instances; works great so far. All data is stored in Windows Azure blob storage rather than on disk, so you get georeplication and redundancy for free.
- Express - Express is the Sinatra-inspired MVC framework for Node that powers this application. It has a steep learning curve, but is really flexible once you know its ins and outs.
Other NPM Packages of Note
- everyauth - Handles virtually any form of authentication you can think of. Currently I'm just using it for managing simple auth (username / password) and it does a great job of making it easy for me to manage.
- node-slugs - Authored by myself and Timothy Strimple, node-slugs is a simple npm package for generating simple but robust URI slugs.
- marked - robust and highly performant server-side Markdown converter. Use it for rendering all blog posts.
- cookie-sessions - a secure HTTP-only cookie system for managing sessions via the Connect middleware for Node. If you don't want to deal with the headache of setting up a centralized session store for multi-instance / multi-process environments, then this is a convenient way to take care of things.
Hit me up at @Aaronontheweb if you have questions!