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.
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.