Open source CMS software

Of the systems reviewed here, Plone is the one to which the term "enterprise" could most readily be applied: it powers eBay's developer site, Nokia's open source site, and the UK's Strategic Rail Authority website among others. It has strong heritage (it's based on the Zope application server, first released as open source in 1998) and was developed in 1999 as a set of Zope extensions. From modest community origins, its massive popularity resulted in the establishment of the Plone Foundation in 2004, to support the development and marketing of the product.

Unlike many other CMS systems, Plone is bundled with all the infrastructure for running it: the Zope application server and Zope Object Database which are written in Python. The down side of this is that it is harder (and often more expensive) to host Plone than a PHP/MySQL CMS. Most commonly, it is installed on dedicated servers; though it is possible to acquire commercial support for Plone.

On Windows and Mac, the installation is done through a one-click installer. (On *nix you would usually install using a package manager like apt.) Plone comes pre-configured for running a simple multi-user content site. Basic content - news items, events, folders, pages and so on - is added via a WYSIWYG editor; users can be added and assigned to read-only, reviewer, or administrator groups;; and workflow rules for submitting and publishing content are in place.

The latter two features hint at where this product's real strengths. Where many systems provide broad permissions such as "can create blog entries" or "can review content" Plone's permissions are far more powerful. They are user- and role-based and inheritable (eg from folders to enclosed items). They can be defined for activities, folders, classes of content, individual items and workflow transitions; in fact, pretty much any element of a site. User and group data can also be imported from external systems (eg LDAP), a feature lacking in lesser CMS systems.

Plone also has the best workflow support of any of the systems reviewed here. It supports practically limitless numbers of states and ways to move between states (transitions). Transitions can be triggered by user actions (e.g. "do X when content added"), or automatically (e.g. "move items between these folders at the end of the month"). In addition, arbitrary scripts can be attached to states (e.g. 'trigger email when X happens').

Other features such as accessible templates, integrated search engine, custom content types, and 'smart folders' (menu items which do a canned search to display content), are included by default.

The only down-side to Plone is that the immense range of features makes it hard to get started: even a simple task like changing the font required a lengthy investigation. Also, once you get past basic configuration, you have to deal with the faintly-scary Zope Management Interface (ZMI), which exposes the depths of Plone - it's not for the faint-hearted. As Plone matures, more tasks are moved out of this interface and into the main Plone one. But there are still occasions where the ZMI or command line are the only options.

On the plus side, the code is well laid out and logically organised, once you get used to it. A wide range of add-on products are available, and it is possible to add your own (in Python).


An extremely powerful and flexible content management platform, readily integrated with external systems; but with an extremely steep learning curve

Requirements: All required software is part of the download bundle; will run on Mac, Unix, Linux or Windows