Skip to content.

OpenAdvantage - Freedom, Choice, Control

Sections
Home Articles A review of open source content management systems

A review of open source content management systems

Many companies are interested in the possibilities of content management, to help them build websites which are easy to maintain. But the prohibitive cost of most commercial content management systems (CMSs) can be a put off. Open source CMSs offer a cost effective way to build a "content managed website". In this series of articles, we review some of the better known offerings, and explain how they could be put to use within an organisation.

Audience: ISVs and web development companies looking for a content management system, who are intending to build a content-managed website for a client.

Authored by: Elliot Smith, OpenAdvantage, May 2005

Introduction

The number of open source CMSs is remarkable: to give you a rough idea, I looked into approximately 35 while compiling this review. Many of these were high profile CMSs, and there are countless others I could have covered.

Useful sources of information I consulted include Open Source CMS, which has demos available for many of the systems described. However, it only covers systems based on PHP. The OSCOM site also maintains a list of open source CMSs, including non-PHP systems. If you are interested in doing a side-by-side comparison of CMS features, the CMS Matrix is invaluable.

In producing this review, my aim was to find alternatives to Mambo and Plone. We regularly recommend these two platforms to clients, but they are not suitable in every situation. For example, Mambo is relatively simple to set up, but lacks the customisability of more powerful CMS solutions and has a complex administrative interface; on the other hand, Plone is extremely flexible and can be used to build very powerful systems, but the learning curve if you want to customise it is steep. I have included overviews of Mambo and Plone for the sake of comparison.

I've concentrated on finding systems which would make a good base for building a content-managed website. This report outlines several systems, each with slightly different capabilities and features. Throughout, I've taken the perspective of an IT developer, rather than end user, in assessing the systems: so the emphasis is less on usability and more on software quality and flexibility.

Detailed evaluation

My initial consideration when evaluating these CMSs was working out the feature set of each. Do they support timed release of content? Do they provide WYSIWYG editors for content? How fine-grained are the access controls? etc.

The difficulty in answering these sorts of questions is compounded by the open source nature of the products. In some respects, any of these systems could be modified to support any code-able feature: for example, a system lacking WYSIWYG editor support could easily be extended with a system like TinyMCE, a set of Javascript scripts which replace HTML textarea elements with WYSIWYG editor elements. Or a system lacking timed release could be modified to allow addition of from/to release dates to content elements. Or a system with a weak interface could be improved by customising the layout templates or modifying the menu system.

Consequently, I revised my approach, and rather than looking at the feature set of each CMS, I looked to measure each system's flexibility. This approach is very much from a developer's perspective: it ignores how usable the interfaces are, how easy it is to add content or modify a menu as an end user, and so on. Instead, I assessed flexibility from four angles:

  1. Default capabilities
    How many features are included in a default install (can I do the main things expected from a CMS without any trouble)? This is an important consideration when assessing flexibility: a system should have sufficient basic functionality to provide a good base for a custom website.
  2. Additional modules
    How many additional features are available and how easy is it to install them? I have tried to identify modules I think will be useful in an average installation.
  3. Template flexibility
    How easy/difficult would it be for me to modify the default look and feel (how easy is it to reorganise the layout or write a new template)? Would it be easy to write my own theme or template to change the look and feel of a site? Is the template system a language in its own right, which I would have to learn? Or is the template held in a handful of files which are easy to read and self-explanatory?
  4. "Elegance"
    Is the code elegant? Can I detect any design patterns in it which are known to make code easier to maintain? This is important, because a system is easier to modify if it is modular, if the data access layer has been separated from the presentation layer, etc.. Is the code well commented, so that I can determine the types of argument a function will accept, for example? This is important if I want to tweak sections of existing code.

To get a handle on these aspects of each CMS, I devised a series of tasks which I expected to be able to handle in any competent CMS. Attempting these tasks with each CMS forced me to explore the capabilities of each system, and help me grasp the issues a web developer might face when using them.

I also did high-level, informal code reviews of each system to get an idea of how well each is designed. In the case of Drupal, I also made some modifications to a couple of modules, wrote some patches, and built my own module.

Using this combined approach, I was able to get a reasonable idea of the flexibility of each system. The sections below describe the systems I would recommend. I've provided a list of systems I evaluated which I would not recommend, with the reasons why.

Note that this series of articles doesn't explain how you should decide whether a CMS is right for you: other people have written very good articles on this topic, so I decided not to replicate their work (e.g. How to evaluate a content management system).

The systems which came out of this evaluation with the best results will be reviewed over the next couple of weeks. The systems are (in alphabetical rather than merit order):