Choosing a CMS for My Site

July 4, 2014    node nodejs mongo js cms website mongodb javascript js

This dilemma of mine has been gnawing at me for a while now. When I decided to give my personal site an overhaul, I was left with the tough decision of making a choice of CMS to power it.

A year on, my site still has an ‘Under Construction’ sign. I have made harder choices in life in this time! Initially, I thought I would go with what I was comfortable with since I had been developing on it for a while now and I knew the ins and outs. It was none other than WordPress. WordPress had been my go-to CMS for a long time - actually since I started developing. All the sites I built for clients over the years were built on WP and even at my previous job, I was the resident WP hacker.

I saw the rise of NodeJS back in 2009 to a true production level framework for JavaScript (for some out there, yes, Node is a framework and not a standalone language). I have pondered on using Ruby on Rails or Python to be the language of choice but after some ridiculously long daydreams, I decided that NodeJS would be my knight in shining armour. I work with the MEAN stack all day, every day at work and this has just fueled my fascination with JavaScript as a whole. My co-worker at work debates that Node took a lot of what made RoR a choice for web developers for many years running now but isn’t every language/framework an extension anyways?

Low and behold, I stumbled upon KeystoneJS - a NodeJS (uses Express) and MongoDB powered CMS or the MEN stack to be exact. I can live with that!

It has all the things you would expect out of a CMS or web application framework (as stated on their homepage) - Express and Mongo, dynamic routing, an auto-generated admin UI which is straightforward and easy to use from any device, form processing, session management to name just a few.

What struck me most was the ability to build my own schemas which would then be used to generate that admin for me and the ability to use any templating language I wanted (Handlebars is my choice when working with Express powered apps).

Setup was fairly straightforward as well. All I needed was Node and Mongo set up and with 2 simple command line codes, I was up and running.

npm install -g generator-keystone
yo keystone

And like any good developer, the power of a CMS comes from seeing how it’s being used in the real world. The site contains all the different use cases of the CMS and I was fairly impressed with a few of them. You can check them out at their Examples section.



comments powered by Disqus