This website has gone through a few iterations over the years. I thought I would go through a few of the various CMSs and hosting providers we have used, and what went well, and what lessons we learned.

Drupal 7 (2012 -2015)

Pixelite started off as a Drupal 7 site, with a basic responsive theme applied over the top

Taken from the Wayback Machine (2013)

What worked well

  • Drupal is FOSS (GPLv2), and thus no licensing costs to get up and running
  • Drupal modules meant that adding functionality was simple (e.g. Disqus comments, tag cloud)
  • The theme was more or less out of the box (Arctica)

Lessons learnt

  • We were terrible at keeping Drupal up to date. The blog ended up getting hacked by Drupalgeddon. This was less than ideal. Very much the 'mechanics car never gets fixed' type of situation.

We figured we didn't actually need a dynamic CMS at this point, and were wondering what other options were out there.

Jekyll (2015 - 2019)

Enter Jekyll, I guess the most popular static site generator around 4 years ago.

Taken from the Wayback Machine (2015)

What worked well

  • Jekyll is also FOSS (MIT license), and thus no licensing costs to get up and running
  • Loads of free themes available, the one we ended up using was called clean-blog
  • Markdown is a nice and easy way to write content, although often at the cost of spelling and grammar checking
  • We were able to extend Jekyll to support authors (with author pages), tags, article types, RSS
  • Hosting on Github (as a static site) using Github Pages which was entirely free
  • The site was un-hackable really as a result

Lessons learnt

  • At the time Github Pages did not support SSL (it does now)
  • Ruby is not really our strong suit, so adding complexity in Ruby was not really a great long term move for us
  • The customizations we had done to Jekyll meant that Github was no longer able to compile the site for us, and we had to push a compiled branch ourselves
  • No real support for draft posts (it does now by the looks) this is handy, as often a well researched blog post will take a few stabs at to get right.

Ultimately the friction in creating content caused a massive drop in articles over the last 3 years. In order to compile the site you required a certain version of Ruby and certain gems installed. It was clear we needed a simpler solution.

Ghost (Pro) (2019 - now)

In June of this year I decided I wanted to shake things up, and move the content over to a new CMS, called Ghost.

Taken from the live site

Ghost struck me as a happy medium between having some flexibility to customise the theme, and yet still have the core platform looked after by experts.

What is working well

The export screen in Ghost's administration section
  • The editing interface for authors is great, it reminds me of Medium or Gutenberg
  • Someone else looks after Ghost. I remember logging into the administration interface one day to discover Ghost 2.25 had been released, and things looked a little nicer, with no effort on my part.
  • The post header images automatically get responsive versions created (e.g. for thumbnails etc)
  • The default Casper theme looks pretty slick out of the box
  • I was able to customise the theme very easily. For instance here is a quick post on how I added PrismJS to the default Casper theme
  • Built in CDN with Cloudflare, very useful for a global audience
  • SSL out of the box

What could be better

  • You cannot extend content types or users with additional fields. The schema appears to be quite locked. If you example you wish to add a LinkedIn field on your user account, so you can display a link on your author page, then you are out of luck. [link to the feature request]
  • The date picker on the post is some silly Javascript widget, rather than the standard HTML5 date picker. When we migrated a lot of our old content, do you know how many times you need to click the "back 1 month" button to get back to 2012? [link to the feature request]
  • US date formats in the post settings [now fixed]
  • Ghost Pro has restrictions around the number of authors you can have at any one time, this makes it very difficult to have guest blog posts by other contributors. You are forced to author in another platform and then migrate the content in.

Final thoughts

Pixelite is a work in progress and has been for a number of years. It is finally at a stage where it is fairly frictionless to create new content, and I am happy with the fact that the core platform is being looked after by people far more qualified to look after Ghost than I am.

Expect a lot of content to be coming out in the coming months. Subscribe to the RSS feed, sign up for email updates, or follow us on Twitter.