As someone who runs several websites, I’ve become pretty familiar with some of the common content management systems out there. Although you will find people who advocate for a particular CMS over another, I’m more the kind of person who wants the right tool for the job. No system is right for every situation. So, this article is meant to help you choose which one is right for you!
I’ll be touching mostly on WordPress, Drupal, and Joomla, though I will throw in a few thoughts about PHP-Nuke, as well.
WordPress is the de facto standard for blogging these days, and for good reason. It’s easy to install, easy to set up, easy to use–all around, it’s easy, easy, easy. If you’re a non-technical user, WordPress is a great system to use. It is also reasonably extensible.
The interface is very clean and easy to navigate. The ability to update plugins directly from the browser is a nice touch. It also supports a multi-user environment right out of the box, in case you want to run a blogging site with multiple authors. The wealth of available plugins provide a lot of options and additional features. The template system is also highly versatile: templates such as Atahualpa provide a vast array of options for customizing the look and feel of your WordPress site.
I’ve found the plugin system very easy to work with, having written a plugin of my own for a niche where the available plugins were inadequate. With no prior experience writing WordPress plugins, I had mine up and running within a couple hours.
All WordPress requires to get started is a working PHP installation and a MySQL database. You can also get a hosted blog on the WordPress site if you don’t want to spring for a capable hosting account.
WordPress had a recent, dangerous security flaw that impacted a few people I know. Fortunately for them, they only lost their settings and not their entire WordPress database, though they had to call on someone with more technical expertise to help them sort it out.
Additionally, WordPress has no mode for a safe failover if a plugin update introduces a fatal bug. You just end up with the PHP “white screen of death.” The way to address this is to remove all plugins, restoring them one by one until you find the culprit. However, less technically-inclined users won’t know to do this, and may be unclear how to proceed.
I’ve also found that quite a few WordPress plugins are no longer maintained, and compatibility between major versions is not guaranteed. So, a lot of older plugins just plain won’t work. This isn’t a fault of WordPress, per se, but the community building plugins for it doesn’t seem to be quite as large and active as those developing plugins for, say, Drupal.
WordPress is a great system if all you need is a straightforward blogging platform, are not a technical expert, and require a clean, simple interface. You can have total control over the presentation of your blog, however, the available plugins may be inadequate if you have unusual requirements.
Joomla is an appropriate system for those who run larger sites or who need to deal with large numbers of pages. It’s suitable for things like corporate intranets, group sites, and the like.
Joomla is fast. Very fast. Its caching system whips the pants off of pretty much all competitors. If you run a large site and you just need it to be fast, fast, fast, Joomla is a good choice.
It also has quite a few plugins, and I’ve found it tends to have a greater variety than WordPress. On the downside, however, since Joomla is more popular with companies, many plugins cost money. There are also a lot of free ones, though, so don’t let that be a deterrent.
Joomla is also pretty easy to set up. Installing plugins is about as straightforward as it is with WordPress.
I’ve also never experienced a “white screen of death” with Joomla, even with some plugins installed incorrectly or with fatal errors in them. It’s a very robust, powerful system.
Many older Joomla plugins are also compatible with later versions, thanks to a built-in legacy mode. It can cause some problems, but I have rarely experienced issues with it.
With Joomla’s focus on speed and survivability, you knew there were going to be downsides.
First off, the template system isn’t nearly as powerful as the WordPress system. While WordPress themes can add an entirely new maintenance area to your admin panel, Joomla themes do not. If you want to adjust the colors or layout, you’ll have to manually modify HTML and CSS files. If you have a good grasp of those, however, you’ll be just fine. It’s just not quite as point-and-click as WordPress users may be accustomed to.
While there are quite a few plugins available, a lot of the free ones are of lower quality than you might find for WordPress or Drupal. Integrating with third-party applications (such as forums) doesn’t work very well. Community-oriented plugins are not very mature for Joomla. It is definitely more of a content-driven, rather than user-driven, system.
If you need to manage a large site comprised mostly of your own content and that of other members, rather than building a hugely-interactive community, Joomla is a great choice. It’s fast, it’s powerful, it’s extensible. You may have to do more of the heavy lifting to get it fine-tuned to do what you want, but it will be rock-solid and stand up to high traffic.
Drupal is quite possibly the most powerful CMS out there. It’s also the slowest. For this article, I will refer exclusively to Drupal 6, which is the current production version and the one with which I am most familiar.
The default installation of Drupal gives you a simple site with news, blog, content page, and forum functionality. If you have more specific needs and don’t want to dig through the plugin directory, you can try one of the installation profiles, too. It’s easy to get up and running.
However, the real power of Drupal is in its vast array of plugins, called modules. There are thousands of modules available, for almost any purpose you could imagine, and many you never would have considered.
Essentially, while WordPress and Joomla are primarily blogging/news engines, Drupal can be turned into just about anything you want. Its social networking features are the most developed. I built a creative writing community out of off-the-shelf Drupal modules. If you don’t like the content types that come with Drupal, you can build your own with the Content Construction Kit. You can add modules to control user access based on social networking user relationships, page-specific access rules, or even use a point system. You can also use a combination of them, as I have done.
Modules are updated regularly with new features, and new ones are coming out all the time. If there isn’t a module to do what you want, it is often possible to request it, or get it added to a module that’s close to what you want.
It also has a very nice theming system, and you can allow your users to choose from the themes you have installed, if you so choose. User permissions can also be controlled on a very fine-grained basis.
Such power and versatility doesn’t come cheap. Drupal is easily the slowest of the major content management systems. While it has a powerful page caching system, it is essentially useless if you use any kind of dynamic page generation. This means anything that controls page access or generates dynamic content is going to bypass your cache system and not give you a performance advantage.
Modules (and Drupal itself) are updated constantly, and it can be a somewhat arduous process to update your Drupal installation. While it is straightforward, there are many steps involved and things can go wrong. It’s crucial to always do a backup just before any upgrades. You never know how two modules might interact and hose your database. This is a rare occurrence, but I’ve seen it happen.
Security flaws are found on a regular basis, too. While I have never seen one exploited in the wild, Drupal’s rapid pace of development means you need to stay on top of your updates.
If you need power with no regard for speed, Drupal is your best bet. You can build virtually any kind of site you want with it, no matter how special-purpose it is. Maintenance is more of a hassle than with other systems, and there are significant performance tradeoffs, but if you absolutely must have that level of power and extensibility, you can’t beat Drupal.
Just a few words about PHP-Nuke. It is more similar to Joomla than the other systems. Like Joomla, there are pre-customized versions out there, my favorite of which is Nuke Evolution Extreme. If you want a stable, robust system that isn’t exactly bleeding edge, something like this will suit you just fine. Nuke Evolution Extreme, in particular, has phpBB built into it–in fact, the entire user system just piggybacks on top of phpBB, so there’s only one database to maintain. I’ve found it very suitable for environments such as “clan” sites, which just need to be able to communicate easily and have a simple interface for adding pages and so forth.
It’s not nearly as bleeding-edge as the other systems, but it is very capable and featureful on its own.
Finally, I would stress that you carefully evaluate your needs before choosing a content management system–and whether you actually need one at all. Depending on what you want to do, static pages might serve you better. Or, none of the above will suit your needs and you might require something more purpose-specific. Wikipedia has a handy list of CMS software, which is worth digging through if you want to find something for a particular niche.
As always, it’s best to choose the right tool for the job. I use all the above systems in one way or another, depending on my needs. Some are heavily customized, some aren’t. No system is perfect for every environment and situation! That is the key point I’d like you to take away from this article.
So, good luck!