Being fairly new to express.js and even node.js, I thought it was time to create my new portfolio using a node.js content management system (CMS) to test out what I know. The reason I choose to use a CMS for my portfolio is learning a new CMS is one of the best ways to pick up on new languages and frameworks. There are two stand out options I’ve come across when looking for a node CMS. They are Ghost, and KeystoneJS.
Upon installing Ghost, I found it had a beautiful interface to blog with, and also lots of themes (it has a marketplace) available that can be installed to change the look of the blog really easily. This could be a good choice if you need to build a something quickly without delving into the code to customise it. One negative for me, was that I had to run it on an NGINX server, which was a bit of a learning curve. Ghost is also quite limited in that it is very much focused around blogging.
One very cool feature of Ghost is its markdown language, allowing you to easily apply formatting without messing with the wysiwyg editor buttons. The editor is also visually appealing and responsive, so you can keep blogging wherever you may be.
On the other hand, Keystone is fairly stripped down, and therefore a much more flexible framework. Because it’s just bare bones, it’s easier to customise, so has more uses than Ghost. For that reason alone, I have chosen to use Keystone for my project as I’m sure in the future I could use it for more than just a portfolio website.
The KeystoneJS website also demonstrates a multitude of different sites that have been built with KeystoneJS, all with different purposes (not just blogging). For example, there's a social network site, and even a suit shop. I must note that the Keystone Visual editor uses TinyMCE, and is no way near as good as Ghost's. So if you're after a good blogging experience, Ghost is definitely the way to go.
Both are great CMS systems, and your choice will depend on what you want to do. If it's blogging, go with Ghost, but for anything else, Keystone is the way!
Having gone ahead with Keystone, I’ve got it running, dug around a bit , and created my first theme. In the process of doing so, I noticed that there’s not many nicely written starter tutorials out there for beginners. We’re always pointed towards the documentation, which isn’t bad, but it’s a manual.
Therefore, my next post in this series will act as a quick start guide to running Keystone, and customising the bootstrap theme. In doing so we’ll touch on the Jade template engine, and consolidate a bit of knowledge on express routing.