There are many ways to manage a site’s content, from the simple Blog engine that allows limited content publishing to a full Content Management System (CMS) framework to Rich Internet Applications (RIA) to MVC frameworks — on which one can build custom web apps. The open source space offers the wide array of choices making it pretty difficult to choose the right solution.
The Bad news: There is no one right answer.
The Good News: There are many appropriate choices for any given situation
The only clear method of coming to a clear decision is by analyzing site requirements.
Site requirements can be attained in multiple ways – interviewing clients, competitive & stat analysis and can be broken down into
- Content: Defining the purpose of your content is just as important as defining the content itself. Is your content tailored for interaction, discussion or plainly self-expression (ie. blogs)? How will the content enter the site and in what format: text, images, video; audio, XML, PDF, HTML, spreadsheets, etc.
- User: How many users will contribute? Are there different roles? What permission does each role have? Can these be customized?
- Presentation: How is the content being presented to the user as well as the contributor or administrator.
- Scalability: How much content? How many users? How much traffic is expected?
The following list may assist you in the determining your requirements:
- Ease of Use: For the client or administrator, for the developer, to upgrade in the future
- Support: For open source projects, the community support is very important. How helpful is it? How active is it?
- Add-ons: There is rarely a CMS available that will match exactly what you need, so it is very important to have as many add-on options available for your chosen CMS as possible.
When a requirement is not really a requirement?
Knowing when the client thinks they need something they really don’t need. Forums, for example.
Forums are not a requirement, they are considered a feature. Does the feature satisfy one of the site’s goals?
For example: When the editor of an online magazine asks for a forum to begin discussion amongst its readership and, thus, suggests a forum. A possible alternative feature would be magazine articles with threaded discussion. This feature would satisfy the same goal in a more focussed type of dialogue for users rather than an open generic forum.
Apples and Oranges
For the sake of keeping this article on point we must consider this a broad comparison of Content Management Systems and not wikis, project management software, or Customer Relations Management.
The Usual Suspects
- MVC Framework – Ruby on Rails, Django, Symfony
Some factors to consider are the technical skill of the staff who will use it, and the behind the scenes work needed to set up and customize the system. The amount of time it can take to properly check the viability of a CMS is itself something that can put many off choosing and implementing a reasonable open source system, so many will go to companies who offer a commercial package they have themselves developed and offer to take care of the content migration and customization. For those with a large budget this may be a viable solution, but for community-based groups, non-profit organizations and small companies or individuals with little or no budget, are there systems available that can make setting up and administration a plausible option with a nominal amount of technical knowledge needed?
I am amazed by the number of web development companies (even here in Vancouver) that only offer one CMS solution. In this case, one size does not fit all. Drupal is not the only way to build a magazine online.
Another important aspect to be aware of is some web firms offer custom proprietary systems. These may have been a viable option only 5 years ago but with the huge choice of high quality open source solutions currently these proprietary systems become a bit of a gamble and tie the client to a costly design firm for updates and upgrade bills.
The following list was determined over years of trying CMS solutions and determining what works and what doesn’t.
- clean semantic markup
- No Table HTML
- Easy to Use
Beyond the basics
- Extensible (plugins, modules, extensions?)
- SEO (how will it be achieved?)
- API (can other applications connect?)
- Version Control (content audit trail)
- Customizable Roles & Permissions
- Support & Community
Wordpress is a very popular blogging platform that has become a fully blown CMS with thousands of plugins and a healthy contributor community. It’s by far the easiest CMS when instructing users how to adminster, and possibly the easiest to theme and customize too. One possible drawback is it may not scale well in some circumstances.
Like WordPress, TextPattern looked like another well-crafted blog publishing system. It has a clean administrative interface and seems easy to use. The whole software package is considerably smaller than WordPress and less taxing for the end-user’s browser which is a definite plus. That said, TextPattern just can’t seem to compete with WordPress when it comes to community and extendability.
Expression Engine looks and feels a bit like a lightweight blogging tool, but allows for a great deal of customizability, allowing you to almost craft a custom solution. The only problem with this solution is that it’s not completely open source and, as a result, it doesn’t have a vibrant community behind it like others.
Joomla has a peculiar method of structuring its content with a curious mix of sections/categories that we found to be confusing, but once the user had familiarized themselves with the way the system works then it could be comfortably used.
There are a lot of people that use Joomla — but if you have a good look at the type of sites that use it as a content management system you’ll see that their content is seldom updated and usually by programmer types. The admin interface is cluttered and unscalable, and the themes are generally pretty slow to load. Try it out, you may like it but I haven’t been able to convince a client or myself to use if for a project.
After almost 6 years of existence, Drupal has reached a level of maturity. It is used by many high-traffic websites, including The Onion, Spread Firefox, and Ourmedia. Drupal is a CMS particularly popular for building online communities, many of it’s built in features are common social networking functions. It is somewhat scalable but requires the correct server hardware and configuration.
Billed as the only enterprise level CMS in the open source space, Alfresco is a big application with version control, mounted shared drives and document repository functionality. Although the project is very scalable, it is not a practical solution for most web projects.
Typo3 is one of the older CMS in this list, it has a solid track record and is used a lot in the enterprise level. It is also very complicated and has a huge learning curve. It could be a possible solution for large website development that doesn’t require social networking.
As rapid web application frameworks like Django, CakePHP, and Rails become more and more popular with web developers, an increasingly relevant solution to content management is to “roll your own”. Building your own content management system (or having one built for you) is usually cheaper than an ECM, but more costly than lightweight or some niche products. The advantages to the custom solution are much the same as the advantages to having a suit tailored compared to buying one off the rack. With a custom CMS, you’ll have a product that does exactly what you want, suits your content perfectly, and is yours to update and change as needed. These solutions can be as abstract or structured as needed, and can generally be built pretty quickly by efficient developers.
The only real disadvantage to custom solutions is maintenance cost. While you probably won’t blow a ridiculous amount on having the CMS built, you may find that you need to hire a developer or keep a development agency at arms length for support, updates, bug fixes, and the like.
Now it’s your turn
Do you know a CMS that works well for you?
Want to share your thoughts about a CMS you’ve used?