Choosing a CMS
Quite often, we have a request from a client to provide a site using an open source CMS. Sometimes good old Wordpress is sufficient, but often its not.
So, What would an ideal CMS look like? Here are a few thoughts:
Enviroment
Compatible with common LAMP hosting set ups. So probably :
PHP based, with a MySQL backend running on Apache. However other languages and databases are a posability if they run on standard hosting environments.
Features
Built into the core of the ideal CMS would be the following features:
- Cacheing
- Workflow
- Content Types
- Custom Fields for content types
- Friendly & customisable url structures
- Fine control of page seo parameters - Title, Keywords, Description.
- Mass asset upload
- Newsletter function
These are however less important than the overall architecture, userinterface and flexability of the system.
It is vital the system is flexible. Not a bloging system with patches to make it a bit of a CMS, and not something that thinks everything is a page. Properly structured data, with fields appropriate to the data you are editing lead to a better user experience and help maintain site quality after hand over to content authors / clients.
Quality
The system needs to leave the templates completly up to the developer. It is vital that building a template requires only core browser tech knowledge - html, css. javascript where nesacary. Systems that attempt to "help" you with layout controls within the CMS are generaly conter productive. Non technical staff can't do what they want, and they just hinder competent web developers / designers. I'm looking at you: interspire web publisher.
Usability.
The system needs to be easy to use for non technical users and have paid some attention to making it accessible to isabled users.
User Experience.
The system is something we provide to non- technical users who want to focus on managing content. It needs to have a thoughtfully designed interface that is not only not terrifyingly geeky looking - but down right attractive to use, with touches like soft delete, versioning and drag drop ordering, mass asset upload etc built into the core and a quaility look & feel to the CMS interface design.
Community
Quality Vs quantity here. The ideal CMS has a strong following, a good selection of site from tiny little cute ones to massive complex ones in production. There are core developers supporting the system and building quality plugins, which they maintain. Prefably with a clear buisniss model (so that they continue to develp them in the future) What it dosn't have is millions of technically deficient users clogging the airwaves and bad developers building thousands of badly written plugins for the same problems. So thats Joomla out.
Plugins
There should be a solid selection of standard plugins: eCommerce, Bloging, forums, user forms etc. These need to be maintained and built to standards.
Structure
The system should have a good solid structure. Prefably MVC. Well documented and a clear methodology for extending it. Idealy, it should be easily understood and powerfull.
These requirements as far as i can tell rule out: Joomla (on almost every count), Wordpress (too focused on bloging, not flexible enough, to reliant on third party plugins of variable quality or often beta or no longer supported), CMS (usability) , Sympony (XHTML is an unessacary extra layer of complexity and seems to mess with the systems ability, for exampe - produce html5 content), Umbraco (ASP.NET), Radiant (RoR, server requirements to annoying).
Candidates
Currently candidates are:
Silverstripe, Concrete5, TypoLight/contao , Frog CMS, Drupal, Typo, plone (despite the fact its written in python) and MODx (although i think the interface design is an issue)
So, The search continues. Comments & sugestions welcome!
