After traveling the last couple of weeks I've got a little break now between conferences and I thought it would be cool to spend some free time on a little project. A few weeks back I purchased javascriptcookbook.com (still can't believe that was available). I'm a huge fan of cookbook-type sites as I find them a much better way to learn about technology than simple "101-style" books. (And I say this as the author of multiple 101-style books.) As I work on client-side development more and more, I find myself hunting down the same type of tricks/techniques/etc multiple times. As an example, "How do I select a random number between two integers?" I figured - why not create a web site so I can collect these things? At worse, I'll learn a few things about Node while I build it, and at best, maybe others will contribute and help build some content. Here is the technology stack I'm using:
Server Side
- Node.js, with Express. I love how easy it is to quickly set up a simple web site with Node and Express. As I've said before, Express is what made me stop smirking at Node and calling it a "web server builder." To be honest, I could whip up a simple content management site in ColdFusion in 2 hours, but I wouldn't learn anything.
- hbs is a simple npm module that lets you use Handlebars in your views. All in all it feels a bit like writing simple CFML.
- MongoDB for data persistence. I haven't used Mongo in years, but it too was rather easy to set up in Node. This article was incredibly helpful and made it simple to learn.
Hosting
I'm not entirely sure yet on this one, but this is what I'm considering...
- I'm going to start with AppFog, a hosting system that supports Node, Mongo, and other things. They have a free tier I want to play with. Their lowest non-free tier is 20 dollars a month, which is cheap, but as I already pay for hosting, I'm not sure I want to pay more.
- So if I don't use another host, I may just use this box. I've already learned how to proxy Apache to Node, so all I'd have to do is research how to monitor/launch at boot/relaunch on crash a Node app in Windows.
- Parse also has Node hosting, and I freaking love Parse. They have a free tier that includes 1 million requests. If you were to get two million your cost would be 70 dollars. Two million hits in a month would be a huge success so I may consider this as well.
Front End
I considered going fancy with Backbone, but frankly, this is an incredibly simple content site, not an "app". I'm using a nice little Bootstrap theme I found and will just do my best to KISS.
I'll also be putting this into a GitHub repo in case anyone wants to see the work behind the scenes, make improvements, or just criticize my Node-code. ;)