Both of the systems I played with were completely unable to do any of this out of the box. I kept digging around, trying to find what I needed, and discovered – to my horror – that I had to start writing “extensions.” This means rolling my own database tables, input forms, etc. It got pretty ridiculous, pretty quickly.
Both of these systems had large libraries of pre-built extensions from their respective communities. What struck me is that there were extensions for purely content-based problems.
For instance, one of them had a downloadable extension for “movie reviews.” Someone wrote some custom content object to store movie reviews, and you had to download it and install it.
Now, in my mind, a movie review is pure content, and a CMS should be able to handle this out of the box. You shouldn’t have to write code to support a new content type. An extension should be reserved to extend the system beyond core content management – into, say, CRM or a shopping cart or something.
If you have a system that you claim is a general content management system, then I should be able to think up new content types on the fly, explain them to the system, have all administration forms and screens generated automatically, and be able to arbitrarily link them to other objects – all without writing a single line of code (aside from template/display code). Am I asking too much here?
Yes, there are specialized systems. Blogging systems are just meant to blog, so anything beyond a blog post is just a bonus. And systems like Big Medium come right out and say that they’re “article management systems,” so I’m cool with that.
What open-source systems do what I want? I know of one. (Curiously, I can think of three commercial systems off the top of my head that do this as well. Is this such a high-end feature that it’s usually reserved for paying customers?)
In the end, however, the two systems of which I speak are both very successful and appear to be thriving. Other people seem to be doing fine with them, so maybe I’m just a snob? Or a wuss?
And it’s also worth saying that these are free systems to which I haven’t contributed a line of code, so perhaps I should just shut my mouth until I’m willing to pony up a class file or two.