Choosing the Right Open-Source CMS

Creating your own website once required a basic working knowledge of HTML. No longer. Thanks to the rise of content management systems (CMS) in the past decade, the heavy lifting is handled for you. But how do you choose the right CMS for your situation? Here are some observations.

Back in the mid 90s — when WYSIWIGs barely existed — I built my first site on a small, free AOL space. (The design was terrible, but I take some pride in the fact that I opted to avoid flashing or scrolling text.) AOL’s built-in WYSIWIG helped with text and pictures but left me floundering in HTML for anything remotely stylish.

Today, WYSIWIGs like Dreamweaver have advanced light years (although they still produce inefficient markup). Now you can build a website like my first one in a quarter of the time, with twice as much content, and NOT have it look like a stream of semi-consciousness.

Dreamweaver is fine for building a simple site featuring text, pictures, audio, and colors. But expectations have risen. We now want embedded video, intricate styling, and interactivity like comments on a blog or posts in forum threads. These features require server-side scripting and database management not available through Dreamweaver, or at least not easily accessible to the novice.

Enter CMS, which manages this kind of programming and puts a nice, user-friendly graphical user interface (GUI) on it. Instead of writing object-oriented code and database queries, you simply click buttons and drag and drop content in a web-based application. Using a CMS will significantly increase the efficiency with which you can add, modify, and remove content from your website, and will make an otherwise technologically exclusive skill accessible to the average user.

Some CMS applications have to be paid for, but others are open-source, which basically means you can use them for free (although hosting typically costs something) and to customize them to your tastes. Among the dozens of CMS applications, those most widely recognized by web enthusiasts are WordPress, Drupal, and Joomla!

While most popular open-source CMS are written in PHP and interact with a MySQL database, no two are exactly alike. You can’t just pick anything off the shelf and get your desired result. Also, a CMS is never going to meet your exact needs right out of the box; you’ll probably need to install at least one custom template and a number of plugins (sometimes called modules, components, or blocks) to realize your site’s full potential.

Choosing the optimal CMS for your website requires having a pretty good idea from the outset exactly what range of features you will offer to users. Are you better off with a more targeted CMS like WordPress, or something more generic like Joomla! or Drupal? The former is primarily meant to host blogs, while the latter two are meant for fully-featured websites that may or may not include blogs. That doesn’t mean you can’t use Joomla! or Drupal for only blogs or that WordPress can’t be made to host a great website with additional features beyond a blog. But the easier path is to start with the CMS that is closest to your final vision. WordPress can make a nice website, but a lot of the things that come built-in on a website CMS are not included in WordPress, so you’ll find yourself hunting for plugins early on. Joomla! on the other hand doesn’t feature a very intuitive blogging system out of the box and is hit or miss on some of its plugins, but its standard package is very well done. Drupal offers great performance and good features, but some users find it to have the least intuitive control panel of the three. Drupal has the best plugin library of almost any CMS I am familiar with, yet it offers the greatest challenge in terms of installing them.

Another pitfall to avoid is choosing the wrong version of your CMS. CMS development teams are constantly releasing new versions and patches, and your intuition might be to go with the latest version available when it comes time to set up your CMS. This can be a mistake. WordPress has a particularly reliable community when it comes to supporting new updates quickly, but this isn’t true of other platforms, and as part of your research you should try to feel out how much support a given version of a CMS is getting. Is a newer version just on the horizon? Does the community gripe about features of the current version? Do some of them swear by previous iterations? If so, consider either holding off (if you can) until the next version comes out and gets a thorough test from the community, or step back to the previous version and try it.

In truth, it is hard to make a complete disaster out of an open-source CMS. Because the open-source community only supports a CMS that they have tried and come to trust, you’re not going to stumble across one that doesn’t have at least a moderately reliable architecture and a devoted community constantly developing new features and plugins. So whatever you pick, the community will be there to help and with enough perseverance, you’ll have a proper website up and running in a relatively short time period, even if you are working alone. But looking before leaping can only help. Whether you’re considering the three I mentioned above, or you are looking to try another CMS like Pimcore, Silverstripe, or PHP-Nuke, a few hours of research and planning upfront can save you days or even weeks of headache down the road.