Monday, 2 January 2017

Is CMS Software Generally Really Bad?

I'm helping overhaul our church Website. The old site was built in Joomla 1.5, and the new site is in Joomla 3.6 (I didn't choose the tech). Joomla's supposed to be a pretty popular system so I'm amazed at how much I dislike it and wondering whether there are better options available. There are a lot of small annoyances, some major design issues, and some really bad bugs.

One fundamental issue is that it's very difficult to work backwards from viewing a page on the site to being able to change the content on that page, until you've studied Joomla and the site internals to figure out how the pages are assembled. I had to read a lot of not-particularly-well-organised documentation to grasp the concepts of menus, articles, components, modules and templates, then do hours of spelunking with Firefox devtools, browsing the administrator interface and making educated guesses to figure out which page parts were generated by which Joomla entities. It seems to me that this could be a lot easier, either by offering WYSIWYG tools that show you visually how a page is assembled (and let you edit those parts in-place!), or at least by leaving consistent notes in the generated DOM to indicate where pieces came from. Simplifying the assembly model would also help a lot.

Another fundamental issue is that there's no version control or change preview. As far as I know the only way to figure out what impact a change is going to have is to make it on the live site. It might be possible to set up a staging server, but that looks difficult, and probably impractical for a small-ish project like ours. If you don't like the effects of the change you have to reverse it manually, which is horrible and error-prone. Without version control there's no way to view changes made by others, make experimental branches, etc. The two latter problems would not be improved by a staging server.

Those issues seem so fundamental to me I'm surprised a major CMS fails on them.

Then there are the bugs. My least favourite bug right now is that often, when I edit HTML using the WYSIWYG HTML editor, upon saving the article the targets of all links are replaced with the target of the last link (destroying my work in a non-undoable way, see above). I assume such a terrible bug must be specific to our installation somehow, but the system is complex and opaque enough that debugging it seems impractical.

Our church's needs are not complicated. The site is mostly static and there isn't a huge amount of content. Nevertheless the pages load quite slowly and the generated HTML/CSS/JS is bloated. It's tempting to start over with a completely different approach. Then again, I know there's a plethora of CMSes and Web frameworks and Joomla is very popular (at least in absolute terms) so I feel like there must be something I'm missing.


  1. Preach it, brother! And I mean it literally. Our church website is on the top of something horribly archaic and I would like to transfer it to something more recent. I can write HTML and/or CSS without any problems, but what horror CMSses make from the simple task is unbelievable.

    1. When we were on Joomla 1.5 I thought our problems were at least partly due to being on such an old version, but now we're on more or less the latest version and things are no better.

  2. Based on my experience, I don't think there's anything you're missing. I think Wordpress is probably a little more tolerable, but YMMV.

  3. If the pages are static, I suggest Jekyll. Have a try.
    It's what Github Pages uses.

  4. They may all be terrible, but Wordpress at least has versioning for web pages. I think one of the CMSes I've worked with also has a thing to help find the right thing to edit, but I can't remember which one and it doesn't work perfectly either.

  5. I used to do Joomla sites from a similar starting point of "I didn't choose the tech". Then I noticed some Joomla users I respected had switched to this thing called ProcessWire: It was very refreshing to use, as you are completely in control of the frontend site generation. There is no spelunking involved. It is really wonderful for developers, who want to build a custom site and not simply use a point-and-click interface.

  6. For, I built a responsive editable website, real cheap, using Foundation and SurrealCMS (and also Apache, NearlyFreeSpeech and Bitbucket). This mindmap links to all the documentation: