It didn’t take long for companies and developers to realize that there needed to be a way for non-technical people to contribute content to and update content on a website. This is where a content management system (CMS) wins the day.
Simply put, content management systems store the actual web content inside a database. This allows non-technical personnel to type in a form to create new pages. The content management system handles the details of making sure the right widgets, themes and other aspects of the web site get applied to the new content.
There are currently 3 main open source content management systems written in PHP. Each one has a slightly different focus and as a result, each has strengths and weaknesses that make it more or less suitable for building certain types of web sites.
A smart web developer will be familiar with all three while perhaps focusing on in-depth work with one or two. The three systems are Drupal, Joomla, and WordPress. Let’s take a brief look at each and its strengths and weaknesses.
Drupal is a system built on PHP and MySQL with web developers in mind. As a result, it tends to be more technical than say WordPress, which makes it easy for relative beginners to get started building web sites. Drupal’s administration interface is rather clunky and it doesn’t have many of the WYSIWYG features of WordPress. This also makes the visual design of a Drupal site much harder which is why Drupal is often a favorite of developers and not designers.
What Drupal lacks in ease of use, however, it makes up for in power. The system is very extensible and customizable. It has a much more robust navigation system which makes it easier to create the URL structure you want.
Much like Joomla, there are many, many extensions and modules available for Drupal.
Drupal is also capable of running many web sites from a single installation. This is a very useful feature for creating campaign sites or a group of related sites. Drupal’s features for running multiple sites are much better than the multi-user options in WordPress.
Drupal has a strong set of community-oriented features which have made it a very popular CMS for non-profits seeking to build communities around their web sites. Many of Drupal’s extensions and modules are free for non-profit use which is great unless you happen to be building a commercial site on Drupal.
Joomla is built and designed as a content management system. It uses MySQL as its database. Joomla does an excellent job of breaking content into highly developed modules such as calendars, polls, etc. Some modules are more fully developed than others. At present, the blogging capabilities of Joomla are relatively weak and in my opinion, cannot hold a candle to WordPress.
Joomla tends to be used more often by personal small business web sites and non-community sites. Joomla does not have as strong of user interaction features as WordPress and the blogging element is much weaker in Joomla. As a result, it tends to be used for magazine web sites where user interaction is limited, small business informational web sites and e-commerce web sites.
Joomla’s installation system is as foolproof as any installation system can get. It’s really quick and easy to deploy. Once deployed Joomla can be extended with a wide array of extensions. Unfortunately, many of the best extensions must be purchased. I’ve also found that out of the box, Joomla’s functionality is somewhat limited and it takes a bit of experimentation and learning to really understand how to apply Joomla.
Joomla’s user roles and permissions system are somewhat limited and I’ve seen a number of people criticize it for that. However, I haven’t noticed Joomla’s roles and permissions to be any more limited than WordPress. Overall, Joomla is a powerful platform and a strong CMS but with that power comes a steeper learning curve for developers working with Joomla.
You may be surprised to find WordPress listed primarily as a blogging platform. However, the wide variety of plugins available and the incredible flexibility of WordPress has led to many people using it as a simple content management site. WordPress is surprisingly capable as a CMS in this regard and there are many examples of non-blog web sites being built with WordPress.
Where WordPress really shines as a CMS is sites which have a mix of static and episodic content. This could include small company web sites that feature a blog, web magazines, product review web sites, and art gallery sites. As a blogging platform, WordPress has built-in community and interaction features that make it an ideal CMS for building interactive and community-oriented web sites.
While there are e-commerce plugins available for WordPress (and it has certainly been used successfully to build e-commerce sites), it works best with e-commerce sites that have elements of a blog and community interaction. This makes it a favorite CMS for many artisans and craftspeople.
A big strength of WordPress is its incredible ease of use and wide array of plugins and themes. WordPress is very simple to install. With version 3, WordPress has also created one of the simplest systems for upgrading your system. Most plugins and even the core WordPress code can be upgraded through the web-based dashboard. WordPress also has the largest amount of “ready-to-go” functionality out of the box.
There really is not one clear winner when it comes to selecting an open source CMS. Each of these systems has its own strengths and weaknesses. It is more important to select the best CMS for the type of web site being built and to select the CMS with which you, as a developer, are most comfortable working. I personally prefer WordPress and use it the most. However, this also reflects that many of my clients are small companies that want to build a community around regularly published content. For a different class of clients and needs, I would likely use a different tool. Which CMS do you prefer?