- Content Management System or CMS
- An electronic system designed to facilitate access to documents, usually on a webserver, with a view to performing frequent updates / edits and adding new content. Popular examples include OSCommerce (for E-Commerce sites), Mambo, and Drupal. Content Management Systems include many open sourced and proprietary alternatives, designed for many different target audiences, mostly with a focus on collaborative management.
There are many reasons for wanting to use or try a content management system. Mostly, I think it's just that projects sometimes reach critical mass and begin to grow exponentially, and managing content on an increasingly wider scale simply becomes too much to handle without a CMS in place. Also, I find that using a CMS drastically increases the amount of work I can get done, since it makes site management much simpler.
I began thinking about CMS options a couple of years ago when I was developing the website for Nirman, a nonprofit NGO based in Varanasi, India. Their site had grown to somewhere between a hundred and two hundred pages of content, almost all of which was permanent, rarely requiring updates. The little that was required I did by hand. I was coding in Dreamweaver, using its site templates to make changing things across my site very simple. As the site continued to grow, however, this became tedious...every time someone wanted to change a page, I had to find the page on my local copy, make the changes, and then FTP it back to the server again. Of course, I had many shortcuts, and Dreamweaver had my site defined so uploading was a breeze, but it was still a pain. Then, it became clear that other, non-technical staff with Nirman wanted to be able to access / edit pages too, making my Dreamweaver method impossible (I live in Chicago, Illinois, some of them lived in Ann Arbor, Michigan, and the organization is based in Varanasi, India).
I became increasingly fascinated with the idea of using a CMS. The reason for my fascination was this: a CMS system allows you to cleanly seperate the content of a website from the technology of making that content available in a suitable form online. This meant that, if I could only learn enough, I could build a system that would let absolute non-techie staff, volunteers, and even high school students working with my nonprofit post and manage site content.
This also meant an end to FTPing files back and forth for a simple content change. Now I use FTP only to access / edit the core php files that make my CMS work, when I need to, for something advanced (in other words, rarely). Once the system is running, it just runs. I'm typing this now by simply choosing a place to put this page, giving it a name, and filling out text information in a form on this site. Then I press submit, and the page is created and links generated in the navigation system, all automagically.
And several new benefits emerged. I now have a forums section, at the click of a link in my administration panel. Would I ever have had the time to hand-code a forums section for my site myself? Definitely not. I also have access to RSS integration, to get information from other websites that are relevant to mine, the ability to let users register, my own blog, and a million other things, all conveniently within clicking distance. I don't have to hand-code a custom php script to let users send me email...I find the right Drupal module, enable it, and voila, it's up and running.
Not convinced? If you've never used a CMS and are managing content for a large site, I'd highly recommend you take a look at Drupal or one of its competing products, like Mambo.

