Blue Flavor

Needle and EMP by Jeff Croft

Choosing a Content Management System for your web project

November 14th, 2007 at 11:54 a.m.

Nearly all websites these days use some sort of Content Management System (CMS). A CMS is a tool (usually web-based) that helps facilitate the process of creating, posting, organizing, and managing the content of a site.

Types of content you may find managed in a CMS include news stories, blog posts, photos, videos, events, and more—or, in many cases, some combination of several different types. While it’s important to understand that content management is a people process, not a technological one, there are many CMS tools available that can help. Which one is right for your website?

The first question you’ll need to answer is simple: do you need a CMS? The answer is probably “yes.” Unless you have only a few pages on your site, a CMS is almost certainly going to help you be more efficient and productive. Besides providing an administrative area where you can post, search, and organize your content, most CMSes will handle “templating,” or flowing your content into an HTML template (or set of templates) you define. This ultimately saves you a lot of time, as you only need to craft these templates once, rather than writing the same HTML structure over and over for every page.

The harder question is: what CMS is right for you? If you squint hard enough, you can begin to see three unique types of CMS products that are commonly used amongst leading-edge web designers and developers:

1. Lightweight, low-cost tools, generally designed for blogging
2. Niche products designed to manage a specific type of content or serve a particular industry
3. Enterprise-level content management systems

A fourth option that is getting more and more popular is to use a web application framework (such as Django, CakePHP, or Rails) to build a custom CMS tailored specifically to your needs. We’ll look at each of these options in detail in a moment.

Considering your content types

The first thing you’ll want to do when choosing a CMS is figure out what types of content you’ll be managing. Do you need blogs on your site? Do you want to showcase photos? If so, should those photos be grouped into galleries? Do you post events? And so forth. For example, if I’m running a newspaper site, some of the types of content I will be managing include:

  • Stories
  • Photos
  • Classified ads
  • Birth listings
  • Obituaries
  • Sports box scores

Structured vs. abstract

You get the idea. Now that you’ve got a basic list of the types of content you’ll be dealing with, consider this: how important is it for this content to be structured? What do I mean by structure? Let’s consider those birth listing for my newspaper site. A birth event has several attributes. Among them: child’s name, parent’s names, date, time, hospital, child’s gender, etc. If our CMS allows for precisely structured data, each of the attributes will be separate fields to fill in, saved as separate rows in our database. This allows each attribute to be stored, searched, and so forth. A less-structured system may simply have a title field and a body field, where you can enter a blurb like, “Janie Smith was born at 8:10am yesterday to parents Tom and Jennifer Smith.” If it’s important to be able to find, say, all girls that were born before 8am at Memorial Hospital, then structured content is a must for your website. If, on the other hand, you just want to show a list of birth events you may be able get away with more abstract, less-structured content.

Additionally, structured content systems will often provide the ability to create relationships between disparate types of content—for example, a photo or sports box score associated with a story. These sorts of relations can be very useful, and are usually not available in less-structured, more abstract systems.

In my mind, this continuum between structured and abstract is a very important consideration when choosing a CMS that many designers, developers, and content producers tend to ignore. Structured content will always lend the most flexibility, reusability, re-mixability, and usefulness to your content. Abstract content may be simpler to maintain and may allow you to go with a less expensive content management platform.

Lightweight blogging platforms

In recent years, lightweight, low-cost (or free) blogging tools, such as WordPress, MovableType, and TextPattern have been championed by many web designers as CMS tools that can be useful for much more than blogs. The reason this holds true is because these tools tend to have a very abstract sense of structure. Designers and developers have been able to sort of “hack” these tools into being what they want them to be, by taking advantage of their less-structured nature.

These tools tend to be absolutely terrific at what they were originally designed for: blogging. When used in other ways, they can start to show their inadequacies. I know of a situation in which TextPattern was used to create a software repository application. Although it works, it’s nowhere near as robust as a tool designed for software repositories might have been. There’s no support for version control, no advanced search tools, and no ability to track what I’ve downloaded and what I haven’t. For these features, we’d need a more structured system targeted at the market we’re trying to capture.

These lightweight, low cost blogging tools are usually quite easy to set up and use. They work great when they’re used within their means. If you find that your site is going to be managing content other than blogs, though—be wary. You may be able to make it work, but you may also be more well-served by a niche or custom solution.

Niche or industry-specific products

Another set of content management tools are those which handle a specific niche or industry’s needs very well. If you can find one of these that suits your site, they’re often very effective and useful. They provide the benefits of a custom solution without the cost of building your own. CMS products in this category can be found for many industries, including Health Care, Education, Journalism, Law, Retail, and more. They tend to provide a much more structured-content approach than lightweight blogging tools and may be more aware of the roles of people in the organizations of their target market(s). This knowledge results in more streamlined, efficient products when used by the industries they’re designed for.

If you can find a good CMS product aimed at your industry, they’re usually a great choice. However, it’s not advisable to choose a CMS product aimed at a particular industry that your company doesn’t quite fit into. Usually, these tools work great if you use them as intended, and not-so-great if you start trying to go out of the box.

Enterprise content management

Enterprise-level content management tends to go above and beyond the duties of simpler systems, offering tools like content revision control, security, preservation and destruction, and access rights management. While simpler systems may offer some of these features, Enterprise Content Management systems (ECMs) tend to be far more robust. At the same time, these systems are very expensive, much more complicated to manage, and are often seen as overkill for many sites and organizations.

ECM systems often focus on unstructured content, but may serve structured content needs, as well.

Custom solutions using web application frameworks

As rapid web application frameworks like Django, CakePHP, and Rails become more and more popular with web developers, an increasingly relevant solution to content management is to “roll your own.” Building your own content management system (or having one built for you) is usually cheaper than an ECM, but more costly than lightweight or some niche products. The advantages to the custom solution are much the same as the advantages to having a suit tailored compared to buying one off the rack. With a custom CMS, you’ll have a product that does exactly what you want, suits your content perfectly, and is yours to update and change as needed. These solutions can be as abstract or structured as needed, and can generally be built pretty quickly by efficient developers.

The only real disadvantage to custom solutions is maintenance cost. While you probably won’t blow a ridiculous amount on having the CMS built, you may find that you need to hire a developer or keep a development agency at arms length for support, updates, bug fixes, and the like.

The in-betweens

As you might expect, there are products that blur the lines between these categories. Expression Engine, for example, looks and feels a bit like a lightweight blogging tool, but allows for a great deal of customizability, allowing you to almost craft a custom solution. Drupal also straddles the line between custom and canned. There are also out-of-the-box products built atop web application frameworks (such as SimpleLog, built on Rails, or Ellington, built on Django) that can provide a sort of best-of-both worlds by allowing you to get up and running quickly like a more lightweight system, but have more control and customizability like a custom solution.

Conclusion

Chances are, you need a CMS. Choosing a tool for your site is a decision that shouldn’t be made in haste. Putting the time in to identify the different types of content you’ll be dealing with will help you in choosing the product that’s right for your site and organization. You’ll also want to figure out where you need to sit in the continuum between structured and abstract and the continuum between pre-packged and custom solutions. Of course, your web design/development agency should be more than happy to guide you in this process.

Jeff Croft

More Information