Blogging with Ghost

Posted on 12 March 2017
2 minute read

After having used Wordpress for some time for Squarecone, I decided to look at alternatives as a basic blogging platform. Wordpress does what it says on the tin and provides blogging features, but it's become far more of a generalised CMS these days, that it's more complex and time consuming to work with, and to be honest, I also fancied playing with new software... welcome aboard Ghost.

I'd not looked into this before, neither had I ever worked with the Handlebars template engine. It didn't take long to get acquainted with both. I've been wanting to build a custom theme for Squarecone for ages, but have never found the spare time due to heavy work / family commitments, but part of the attraction to Ghost for me, was its simplicity and the ability to write the posts as Markdown rather than using the WYSIWYG editor (which I normally disabled and wrote as plain HTML) in Wordpress.

I looked into the default Casper theme to work out what files and tags were controlling what and then started with a blank directory to create my own theme. This integrates the latest (v6 as of writing) version of Bootstrap 4-alpha. The front end build process uses GulpJs and Sass. Although a rather simple / clean / minimalist design, depending on your take, it took about 8 hours total from start to finish. The next styling step will be to fine-tune the AMP "theme" / pages.

I've also changed some other aspects of my infrastructure. The original Squarecone blog ran on a VPS provided by Heart Internet. I still use this VPS for other sites and that it also hosts my mail server and other services for myself, family and friends, but I am now running this on a Digital Ocean Droplet meaning I can scale it easily, if I ever needed to. As I wanted to potentially run multiple Ghost blogs on the same server too, I opted to not expose Ghost directly to the #BigWideWorld but rather proxy it behind an nginx server. TLS certification is provided by Let's Encrypt.

I have one aspect left to integrate... comments! I've decided this time to go the route of using a self-hosted Discourse instance running on a separate DO droplet. This isn't yet integrated as I wanted to get the blog up and out of the door, so comments will come very shortly once I know that all of the configuration for Discourse has been done correctly.

I'm hoping that there should be a speed increase in serving this blog now also over the Wordpress incarnation. Time will tell =)