Toggle menu

Picking the right CMS for the job

As developers we are always intrigued by the latest tools of the trade, we chase what's hot and jump on the latest products that make our lives as coders and creators more fun and efficient but we mustn't neglect what's best for the client in each particular case.

As developers we are always intrigued by the latest tools of the trade, we chase what's hot and jump on the latest products that make our lives as coders and creators more fun and efficient but we mustn't neglect what's best for the client in each particular case.

By and large this is a process that’s served us well, it’s helped us build modern, fast websites and do it in a really efficient and future-proofed way. This very site, built with the Statamic CMS, was a joy to build, it’s fast to change things, we can push content changes directly to our GitHub repository and in turn we can automate this to directly push to our live website. Cool stuff.

Equally, if a client needs a new feature or a slight layout change, we can quickly pull down the latest version from GitHub, make some local changes, check all looks good then push them back up and a few minutes later, new updated website. No databases, no hassle.

Cms Logo

ProcessWire, Statamic and Craft CMS

Perfect? Well, not always

We recently had a sobering experience with one of our best clients, we were briefed with making some layout changes, a few style tweaks and some new features. The current site was built on ProcessWire, a phenomenally flexible and powerful system but coming from a world of no-DB CMS, it suddenly seemed a pain to contemplate importing/exporting database dumps, FTPing files, suddenly this wasn’t cool anymore, it felt so old-school.

Seeing as this is a very regular client, we made the decision that we would spend the time porting the site to Statamic, choosing to spend our time in the hope that it would mean faster development down the line. It took a few days to transfer everything and add the new features but things were good - it is faster developing without the database, we can add fields and content directly from out text editor, only popping into the admin panel when it made sense, we were nicely in-sync with our GitHub repo and issues, all was well and then..

Entries View in Craft Cms

The standard Entries view with Craft CMS

Developer Harmony != Client Happiness

Our client, we should point out, is one of the more active when it comes to maintaining website content, we’d perhaps gone through a period when clients would prefer to come to us for content changes, the no-db approach suited us perfectly. For this particular client though we ran into a fair few issues reasonably quickly. Now it must be pointed out that Statamic v2 is currently in Beta and I’m almost certain that the few minor bugs will be ironed out very quickly (it truly is a great system and well worth checking out) but we were running into issues with spinner icons, broken links.

Getting in a pickle

We were also finding huge problems when it came to renaming and reordering entries, because of the one-to-one nature between site content and files that reside in the project folder, reordering is harder to get right in these systems. Essentially when the client was reordering entries, duplicates were being created in the file system and it became impossible to track which ones were the ones to keep and which were the ones to delete.

It turned out that the sizeable benefits to us as developers from having such a cool, agile system were largely invisible to the client, we had chosen developer workflow happiness over battle-tested, ultra-reliable admin features, and in this instance, we were wrong to do so.

Statamic, ProcessWire and Craft CMS, three equally superb content systems

So to cut the story slightly short, we ended up porting the site for a second time to a third system, Craft CMS. Craft is a system with none of the developer workflow advantages of using Statamic, we need to maintain a database with all the data synchronisation issues that entails we have to define fields and sections in the control panel (yay, mouse clicks!) and yet it brings huge advantages for this particular client.

Rock solid, tested code, things happen when and where they should do, versions of content are saved automatically, meaning the client can check older versions, preview them and even restore them with ease. Reordering is entirely trivial. There are easily-accessible plugins for importing/exporting content.

I’m not sure I’ll ever use a system again that cannot produce or listen to CSV files.

In short this is a system I have a lot of faith in, I’m very happy to let the client kick the tyres and if we run into an issue there is a large community behind the product to fall back on.

Not as clear-cut as all that

Now just to throw a fly in the ointment, a large part of the advantages I’ve just attributed to Craft could equally apply to ProcessWire:

  • Battle-tested, rock-solid admin interface
  • Easy content reordering
  • Hugely powerful API
  • Easy importing/exporting of content

What’s more, ProcessWire is fully open-source, has an unbelievably talented and ultra-serious developer behind it (Ryan Cramer) and perhaps the most helpful online community I have ever encountered.

I’m a huge fan of the page tree view that a client is presented with and still struggle with Craft’s concept of not displaying pages in a way that replicates their front-end structure.

ProcessWire's Tree View

ProcessWire's tree view

On the other hand, Craft has a lot of great little touches for administrators, live previews, drafts and revisions, some inline editing, a pretty good, yet not brilliant plugin directory.

Summing up lessons learned

It’s early days for the client with this system but it seems like Craft is the perfect fit for them: it offers them robust tools and for us, opportunities to expand its feature set in the future. Several of our other concurrent projects are working just fine on Statamic, this very site is a pleasure to update as a case in point.

Equally ProcessWire is a phenomenal tool and I’m excited about seeing it add new features all the time which may help bridge the gap with Craft when it comes to polish and client happiness.
So the old adage, rings true

“Pick the right tools for the job”, or, in our case, “pick the right tools for the client”

Return to articles