Hacking at ... CMSes

Published Apr 8, 2021, 9:23 AM
Written by Marcus Nyeholt

What’s a fun and effective way to evaluate a whole raft of CMS options to see what’s changed or what’s new? Have a hackday! We had a particular project brief in mind for our CMS hack day, so that sharpened our focus.

Introduction

We’ve loved using Silverstripe CMS for many years in our work at Symbiote. It strikes the right balance between being feature-rich, like MySource Matrix and Drupal, but it’s more nimble and developer-friendly than either of those. 

That being said, we always keep an eye on whatever else is out there, in terms of CMSes. 

A recent project (read more about it here: Circular Open Case study) gave us the opportunity to find a nice light-weight new CMS. So, rather than having one person sit through tens of “Getting started” Medium posts (the reading time suggestion never takes into account downloading docker images!), we decided that we’d get our dev team to spend a whole day cranking into different CMSes. This was a far more enjoyable way of getting a bunch of completely different perspectives.

Background

A Content Management System (CMS) is the piece of software that provides simple ways for people to write text, upload images, and link to videos (just a few small examples!) and make web pages – without them needing to know anything about web design or coding.  

A hackday is a day in which people start from scratch on an idea or concept, and “hack” together something that meets a loosely defined brief. 

So for us, this was a hackday to learn a new CMS. These were the criteria we took into account with all the CMSes we looked at.  

A simple site running on your local environment that demonstrates the following capabilities:

  • Deployable in our existing stack, which implies PHP or Node as solutions
  • Provides persisted data, preferably in a RDBMS backend but not required
  • Can be used with Docker for running a local development environment
  • Group based user login, with ability to restrict which pages someone can edit
  • Different page types that have different editing inputs for different field types
  • File upload, in particular images
  • Ability to create a simple “Event” type that has a date, time, location associated with it
  • Ability to create a listing view of events
  • Supports embedding of content, eg Youtube videos
  • Can support custom themes - bonus points for using the CSS of the Symbiote Design System
  • GA integration
  • Social media integration.

 

Evaluation criteria needed to cover:

  • Ease of use for content authors; is it simple enough for people to find and edit a page?
    • aesthetics
    • finding pages to author
    • editor performance; ie creating content, creating links, attaching images
  • Are there accessibility plugins?
  • Number of steps for getting started for a developer
  • Off-the-shelf modules
  • How configuration is managed.

So which CMSes did we review?

  • Ghost CMS [TryGhost/Ghost ]: Popular with the team, maybe because it touts itself as a NodeJS wordpress alternative! Slick UI, looks to be easy to build upon, perhaps a little _too_ bloglike
  • TwillCMS [https://twill.io/]: Built on top of Laravel, this is more of a toolkit for managing content in an existing Laravel site than a standalone CMS. If that’s your use-case, it’s absolutely worth checking out
  • PyroCMS [https://pyrocms.com/]: If managing page types, fields, and render templates directly from a CMS is your thing, PyroCMS could be for you. Not as overwhelming as Drupal, and looked to be a nicer transition from Silverstripe. This was a fun CMS to play within
  • Drupal [https://www.drupal.org/]: Powerful, lots of modules, but a lot to take in to get going with if it’s not your thing. Having tried various iterations of Drupal since v5 (and migrating a _lot_ of Drupal 5 content), I have to say it’s a _much_ nicer development experience in v8 than previous versions, so worth keeping in mind – particularly if you’re building a VicGov website!
  • October CMS [https://octobercms.com/]: Another in the lots-of-complexity-in-the-cms space. If writing HTML via the CMS is your thing, this may be for you, but it can quickly be overwhelming if you’re wanting something simple for authors to pick up
  • KeystoneJS [https://www.keystonejs.com/]: Another NodeJS CMS, the development process for this looked very familiar coming from a Silverstripe background, but it didn’t quite have much in the way of typical CMS functionality. If you’re wanting a rapid application development stack where you’re bringing your own frontend layer and just need a content API, this may be useful

Our hackday included a couple of prescribed check-ins during the day and then, at the end of the day, we heard from each team member about how the systems they looked at matched our needs.

Conclusion

I personally found Keystone to be really interesting. Having worked with SailsJS in the past, I liked this as an alternative to a headless CMS. I think GhostCMS is also a pretty compelling piece of software if it fits your use-case, and given Drupal’s position within the industry, it’s nice to see it with a modern framework under the covers. 

Given that we were after something light-weight enough to upskill quickly though, we settled on using PyroCMS for putting together the Circular Open site for this client. Using PyroCMS we had the site up and running to the satisfaction of our clients within just a few weeks thanks to some great efforts by our team here. 

We found the hackday group approach not only fast-tracked our shared knowledge about all the current open-source CMS options, it was also a great way for all of our team members to have fun together and share their insights.