Introduction to CMS
Overview of Content Management Systems (CMS)
A web presence is critical for almost every nonprofit, but creating websites can be daunting. It can take a lot of time, money and technical expertise, which are often in short supply. And just because you have a website up and running doesn’t mean your work is done. You still need to keep up with maintenance, updates and desirable new features. This is where an open source Content Management System (CMS) can help.
A content management system (CMS) is a software package that lets you build a website that can be quickly and easily updated by your non-technical staff members. Or it is a software program that makes building and maintaining websites faster and easier. Let’s say you’re using a site without a CMS—if you want to post an event and have that event show up in five different places on the site, you have to perform the same activity five separate times on five separate pages. With a CMS, you only have to post the event once—and any staff member can do it, regardless of their technical expertise.
How does this work?
Content management systems store the actual content (text and images) in a database. The system can then automatically pull the content out and show it on the appropriate pages based on rules you set up in advance. The ways you can organize it, and the types of rules you can use, depend on how structurally flexible the CMS is. This setup makes it easy for all your content administrators—the staff members writing and publishing the actual information on the site—to create content without worrying about technical issues, or even knowing all the places the content should go.
Content Management Systems also separate graphic design from the content itself. This is accomplished through the use of “themes,” or graphic design layers that control graphic elements, font and navigation styles, and page layouts for each page on the site. You simply choose a pre-packaged theme for your site, or create a theme that’s completely customized to your own look and needs.
Content Management Systems are Open Source. It means the software’s source code is freely available for everyone to see and change. These open source systems are created and supported by a community of developers, and can be downloaded without cost. Both their feature sets and their price tags make open source systems particularly attractive to nonprofits.
Open source content management systems are also designed to be modular. When you download one you get the set of features a group of developers decided ought to be the base level of functionality, called the “core” of the system. But there’s a huge range of add-on modules that provide additional functionality for each CMS, and a rich network of developers working to create more. If there’s something you want for your website that the core CMS doesn’t already do, someone else has probably already built what you’re looking for—and, if not you can build your own, or hire someone to build it for you.
An open source CMS certainly isn’t a cure-all; it may not even be the best option. But for many organizations, it can offer useful savings in time, money and resources.
The most widely used Content Management Systems in the nonprofit world are:
WordPress is a great choice for fairly small (a few hundred pages or less), simply arranged websites. It’s the easiest system to install and understand, and is easy to maintain and update, putting site setup within reach of anyone with a sense of technical adventure. There are many predefined graphic themes available; adapting them to your particular needs can range from trivial—if the theme allows you to select your own color and add your own logo, for instance—to a relatively straightforward process for someone familiar with HTML and CSS. Updating and editing images and text is also quite straightforward, and multiple add-on modules are available.
However, WordPress doesn’t scale as intuitively as the other three systems to support complex sites. For custom content types or article listings displayed based on automatic rules, you’ll need to try to find a contributed add-on or theme that provides that functionality. There is only limited support for differentiation of user roles, although add-ons are available to support permissions based on section or type of content.
Joomla is a solid utility player, good for a variety of different situations, and it’s relatively straightforward to install and set up. There’s a bit of a learning curve to understand how the menus, site structure and content work and interrelate, but once you’ve got it the system provides a strong infrastructure for straightforwardly creating useful site structures to support even very large sites. Add-on modules support a wide variety of functionalities, from directories to shopping carts to community features, providing a solid base for many different kinds of sites.
While Joomla supports more complex site structures than WordPress, it is not as flexible as Drupal or Plone. Each piece of content is typically associated with a single page. This makes the system more straightforward to understand, but can be cumbersome to update and limits very advanced structures (like structuring a site around a multifaceted taxonomy). It’s not easy, for instance, to create your own types of content (for example, a directory of state schools that includes key information about those schools), and then show it in different views on different pages of your site. If you’re not sure what any of this means, you probably don’t need to worry about it—these are advanced considerations that won’t apply to the vast majority of sites.
Flexible and powerful, Drupal is a great choice for more complex sites. It supports a wide variety of site structures—with widely used add-ons, you can define very detailed rules as to what content should be displayed where, and build your own custom content types. It has particularly strong support for Web 2.0 and community functionality, including user-submitted content. It’s also easy for content administrators to find and update content—once you have installed a WYSIWYG editor to let them format the text, which does not come out of the box.
But Drupal’s power comes with complexities. Understanding what the system offers and how to configure it is more difficult than WordPress or Joomla. The administrative screens for configuring a site have a huge number of options and settings, making them harder to interpret. And the flexibility of the system means it’s important to think through the best way to accomplish what you want before diving in. Most people will want to hire a consultant familiar with Drupal to help them set up a site rather than trying to go it alone.
Drupal is not as strong as Plone in workflow, and may not be the best choice for organizations that want to have many different people with different roles and ownership over content.
Plone is a powerful and robust system suitable for organizations with very complex needs. It’s used by major newspapers and huge businesses, and it shows. The system offers a huge degree of flexibility and control, and it supports almost infinitely complicated workflows. And since the content admin tools are well laid-out and friendly, it’s easy for non-technical administrators to update body text, images and sidebar areas. Plone’s functionality is as strong, or stronger, than the other three systems in every area we reviewed except for one—Web 2.0/Community support, where Drupal came out on top.
Its main downside is in system installation and configuration. Plone requires a customized hosting setup (as opposed to a typical Linux/Apache/MySQL/ PHP environment). Adding existing graphic themes and add-in modules, creating custom themes and setting up the site structure is all more complex than the other systems. Many seasoned technologists will likely want training to understand the system. Learning Plone to build a single website doesn’t make much sense—you’ll want to hire a consultant who’s already familiar with it. And since Plone is written in Python (unlike the more familiar PHP of the other systems), it may be harder to find someone to extend the system through custom code.
• Joomla, Drupal and WordPress installations
• Joomla, Drupal and WordPress elements
• Joomla, Drupal and WordPress front end
• Joomla, Drupal and WordPress back end