Saturday, May 17, 2008

Choosing a Content Management System

I have had direct experience with Mambo, Drupal, Apache Lenya, WordPress, Plone, and Zope on everything from small company websites to sites served to millions of users. Here are a couple angles that I keep in mind when selecting the right CMS for any given job:

* How do you want to use it? Many people get hung-up on features lists, pitting various CMSes against one another in a matrix of checks and X's, but this is almost always misleading. You don't seem to be heading down that particular rabbit's hole when you say you want to "edit/change/add/remove pages," but it can become tempting. Writing down some quick use case scenarios can be a good way to stay on track. For a basic CMS I would steer clear of Drupal (even though I'm quite fond of it ;) or Zope and prefer something like WordPress or MovableType.

* How do you foresee your site growing? Drupal and Zope provide a "everything and the kitchen sink" approach that gives you quite a bit of flexibility, but the trade-off is that they assume a certain technical sophistication. Correspondingly, WordPress or MovableType are excellent choices for small sites where workflows are simple or nonexistent, but if you have a need for complex workflows or integrations then they can become constraining. Thinking now about your future needs can save you the pain of a migration later on.

* How do you want to publish to the site? If you want to make changes instantly on the site and don't plan to stage your content, then WordPress, Drupal, or MovableType are good choices. On the other hand, if you need to stage it prior to deploying it to your production site then Apache Lenya would be a good fit, although its learning curve is steep. The trend these days is away from staging content, but sometimes performance considerations or an organization's culture demand it.

* What kind of support, if any, do you want for your CMS? Some CMSes have small consulting industries surrounding them, or are sponsored by a commercial entity that provides support. If it is important to you to be able to pick up the phone and call someone when things break then you should survey the field before selecting a CMS.

No comments: