There are two major open source Content Management Systems (CMS) that The Graphic Alliance uses for projects: WordPress and Drupal 7. These are pretty industry standard, with WordPress and Drupal running 64.92% and 9.27% of the top 1,000,000 websites as of January 3, 2013. Picking the right CMS is key when building a website, as it’s a decision you’re ultimately saddled with for the life of that site and it will have an effect on how your site can scale or expand in the future.
But first, an aside: “Open what?”
The idea of “open source” has been gaining traction over the last decade or two and is a fundamental change to traditional proprietary models of software development. Without going into too much detail, the most noticeable attribute is that source code for projects is freely available. You have a very high degree of freedom when working with open source, with the only major requirement being that developers modifying open source code must also release their source code.
The result is that communities are built around maintaining and supporting useful tools: help is usually easy to find, bugs are found faster and problems are fixed sooner. This is the advantage of having more people looking at and using the same source code. Given that most open source projects are distributed free of charge, this also keeps software acquisition costs down and can be a huge time saver for developers — instead of writing everything from scratch, bug testing that by yourself and maintaining that project for the rest of its useful life, you just deploy an open source project and modify to suit. This is particularly helpful with functionality most developers hate to code — user authentication, for instance.
WordPress
WordPress is the most-used open source content management system on the web by a fairly high margin — the second most-used in the top million sites, Joomla!, has 1/6th of its user-base. A large part of it is that WordPress was one of the earliest and best CMSes, and it appeared just as the concept of “blogging” went mainstream. This focus on blogging perhaps explains some of its architectural decisions — unlike Drupal or Joomla!, WordPress is best suited for simple websites comprised mainly of “article-like” content. By “article-like,” I mean that it resembles a blog or newspaper article: there’s a headline, body text, possibly tags, maybe an image or two. While this doesn’t sound overly impressive, it works quite well for basic websites. WordPress is also pretty decent for sites with photo galleries.
WordPress’ functionality doesn’t stop there, however. Its extensive plugin directory and user community means that basic WordPress websites can be extended a variety of ways. For instance, a plugin called BuddyPress can be used to create small Facebook-like social networks for site users; another one adds a forum. This extensibility is a key reason why open source content management systems are so powerful.
As a result of WordPress initially being developed primarily by and for bloggers, content in WordPress generally resembles a blog post. This is perfectly fine if a website is mainly just a series of info pages, and even more complex pages (Store location pages with maps, for instance) can be built like this.
However, what if your content has a lot of characteristics that might not be so easily described in a paragraph? A real estate site is a good example. Instead of being presented with a big text field, you might want your content to be more structured: How many rooms does the house have? What is its square footage? How many of those rooms are bathrooms? Bedrooms? What material is the exterior? And most importantly, where is it located?
Drupal 7
Drupal is fantastic for such content. It allows you to enter data into a big form with preset options, which simplifies the task of entering this data. Another advantage of doing it this way is that it greatly increases how useful that data is — creating a list of 2 bedroom flats bigger than a certain square footage value becomes an incredibly simple task because you simply have to filter on known values.
While WordPress can do custom content types also, it’s nowhere near as good at it as Drupal is. Not only that, but Drupal makes relating arbitrary pieces of content extremely simple — for instance, adding a “Similar properties” field that allows one to manually select other flats is really simple in Drupal.
Drupal’s also a very good platform for creating really involved end-user experiences. While users in WordPress are pretty much relegated to adding article-like content, Drupal users are able to substantially change the layout of pages without ever writing a line of code.
Lastly, while both can do multi-site setups (I.e., london.somesite.com and nyc.somesite.com share the same codebase and are similar, yet operate independently), I find Drupal gives a lot more control over the end result than WordPress.
What about Joomla!?
I’d be amiss not to talk about Joomla! in this space — after all, in the top million sites, a full percentage point more people use it compared with Drupal.
While Drupal and Joomla! target the same audience (complex use cases and community sites that are difficult to build in WordPress), in my opinion, Joomla! isn’t nearly as refined a piece of software as Drupal. Creating complex content types is more difficult and the administrative interface is terribly disorganized and unintuitive. The biggest difference, however, is that Joomla! plugins are really big chunks of functionality — even fully-built sub-systems — that are generally pretty monolithic and difficult to customize. This can increase development speed, but often at the cost of extensibility and user-friendliness. Meanwhile, Drupal gives you smaller building blocks to use and expects you to build the components you want with them. This often takes more time, but the result is much easier to use and generally more streamlined.
It’s pretty telling that, while Joomla! is used slightly more in the top million sites on BuiltWith, Drupal has almost triple the number of installs when looking at the top 100,000 sites (17.24% compared with Joomla!’s 6.79%) and Joomla! doesn’t even show up in the top 10,000 sites (Drupal, meanwhile, commands 18.79%).
In closing
Hopefully now you have an idea of the strengths and weaknesses of the two platforms that serve much of the web. While both are excellent pieces of mature software, understanding where each excels in key when choosing the right content management system.
Ændrew Rininsland is a PHP developer at Graphic Alliance. In addition to his work with WordPress and Drupal, he has also done data journalism for The Guardian and The Economist. He tweets via @aendrew on Twitter and maintains a blog at www.aendrew.com.