On a quest for the perfect CMS

12/12/2017

WordPress has been the CMS I use in most projects for quite a few years now. There is a simple reason for that: I'm yet to find a better solution than WordPress + ACF Pro for rapid development.

ACF is a wordpress plugin: advanced custom fields. It allows developers to create custom bespoke administration interfaces. The condition system allows to display certain fields in any scenario and the field types cover just about everything. Using it with custom post types, and there you are with a very easy to use and customisable CMS solution.

It's not all great though. WordPress is ancient. And the community of developers maintaining it have made a choice: no breaking changes. That means everyone running WordPress can update at any time, and it shouldn't break. It does make it stuck in the past a bit though.

Here are the main drawbacks in my opinion:

  • No dependency manager. It's 2017, composer natively, would be nice.
  • No template engine.
  • The way the database is structured (although that's also why it's so flexible).
  • Performance. It's heavy and slow. You have to rely heavily on cache if you expect high traffic.
  • Lots of very badly written plugins are out there. Too many in fact.

Now all of these things are not real problems. Composer is easy enough to implement, using wpackagist and this fork of WP on GitHub. The awesome Timber plugin brings twig to your themes, as well as a better separation of front end view and logic. Don't install badly written plugins, cache things properly and away you go. However, it'd be nicer to have all of this natively.

I've tried many other alternatives and never found something that comes close to WP+ACF in terms of flexibility and ease of use.

Bolt was very promising but then it started becoming temperamental on my setup. Also, not the same flexibility.

GravCMS is great (and runs this site!). However, it's very much developer oriented. Couldn't really use that for a client's project. And also, not the same flexibility.

Craft looks as good in terms of flexibility, however, not free, no composer, based on Yii... I'm yet to try though.

And amongst others, I could also name OctoberCMS, the obvious Drupal and Joomla, SilverStripe etc...

In conclusion, WordPress is going to remain the CMS I default to for the forseeable future, unless the project has specific requirements. When you know how to deal with it, it's not so bad really. After all, if it powers 27% of the web, it must be for a good reason! I will keep an eye open though, we never know what might come up...