A large part of my job here at ICAR has been wrestling with various so-called content management systems (CMS). In an effort to build various applications I’ve been evaluating many popular opensource CMS projects and I’ve run into the same basic problem with just about all of them: I don’t want a blog, I want content management. They all claim to be flexible systems with all the latest doodads but in the end, they’re just glorified blogs. Case in point, almost every system sets itself up as a blog out of the box, and, in general, that’s the most complete part of the system. Other areas are sorely lacking.
Here’s a few of the systems I’ve looked at:
- typo3 – Our website, which we inherited, runs on it. It’s conceptually fairly good but suffers from an utterly unusable admin interface. Best of the bunch for non-blog sites, but the admin interface is just that bad.
- Drupal (5.1) – Right out of the gate, a poor experience — it failed to install, spewing error after error. I tried a couple more times, even checked out from CVS, to no avail. Eventually got it running after a
chown -R apache drupal/but a day later it mysteriously would no longer let me login to the admin area.
- RadiantCMS – The only Ruby-based package I looked at. Building on the wonderful Ruby on Rails, this was a disappointment. It’s got CMS right there in the name but it’s still just a blog.
- Joomla! (1.0.x, 1.5) – I initially toyed with 1.5 but found it to be still too early in the beta stage, with many (most?) extensions not yet compatible with it. I’ve since settled on the 1.0 series and that’s what I’m using now. It’s still far too blog-centric for my tastes but an attractive admin interface really goes a long way, especially when it comes time for the users to come in and screw everything up.
So what’s wrong with all of these systems? They don’t handle content in a generic way. They all make assumptions about what kind of content you’re dealing with. A proper system should let me work with content from multiple disparate systems using a common interface and then put it all together however I see fit.
For instance, right now we’re building an application that combines content from a document management system, an online learning system, blogs, discussion boards, and news feeds and presents them all in a single application. In today’s CMS world, we would implement each of these features as some sort of extension or module where each would by default be completely independent from one another. Integrating them on the administration end is difficult if not impossible. In the end, you end up writing as much as code as you would have if you started from scratch.