Web Developers, Meet the Content Management System (CMS)
Let's face it, web developers, web content management systems (CMS) are here to stay. Not to worry, there remains room for designers and coders in the world of CMS.
For the sake of brevity, this article will focus on the free (i.e., open source, GPL, GNU licenses) software -- Drupal, Joomla, Wordpress are three of the more popular of the bunch. After all, the open source are the most fun and challenging for developers, as you can show off your mad programming skills by contributing your own, or contributing to, custom plugins referred to by the various applications as modules, components, extensions, plugins.
As with any Web project, it is important to first identify the intent of the Web site and the client's needs. If your non-techy client is interested in generating and publishing their own content, you are on the right track with a CMS. So, onward.
What is a CMS?
Wikipedia describes it thusly: "A 'web content management' (WCM) system is a CMS designed to simplify the publication of Web content to Web sites, in particular allowing content creators to submit content without requiring technical knowledge of HTML or the uploading of files."
From a developer's standpoint, a CMS is digital Lego's. A foundation ("core" code) and predefined building elements that you can manipulate to your heart's desire without even getting your coding hands dirty...unless of course you want to. Because it is "modular", you can easily expand the scope and functionality of a site through plugins (a/k/a "modules", "components", "extensions", "plugins").
Why Use a CMS?
Well, let's just say, not because of coder laziness, although there is that. As a site builder, you need nothing more than great CSS chops, and a solid understanding of best practices. No need to script from scratch; but, if you are a PHP coder, the CMS world is your oyster. (Sorry ASP programmers, there's not much to see here, except DotNetNuke.)
Key reasons to use a CMS include:
- Client wants control over content creation and publishing, including uploading of images and files, and a WYSIWYG interface.
- Client wants public and private (registered user) sections of a Web site.
- Client wants visitors to be able to interact with the content.
- Client wants rotating, blog style content display - for example, front page article summaries with 'read more' links.
- You, or client manager, want integrated Web administration control of site.
An ancillary reason is that you enjoy being part of such a large developer community. A fraternity (/sorority) of people who enjoy building and sharing great new modules, improving great modules, and appreciate great modules. Hundreds of thousands (probably millions) of volunteers around the world working to make a product better, every single day. Well, that's open source, for ya.
On this note, there certainly are developers profiting from these contributor modules. Some sell their module code directly, while others are sponsored by a company to build a custom module, which then often is made available to the community. The same is true for CMS templates or themes. So, you need not think of developing for CMS a waste of time.
NOTE: In the CMS world, the term developer tends to mean module programmer, whereas a site builder is referred to as a designer or themer.
How to Choose From Among Content Management Systems
The decision of which CMS to use will be dictated, in large part, by the intent of the Web site. While there are many free content management systems (see Wikipedia's quick glance table: http://en.wikipedia.org/ wiki/List_of_content_management_systems), the following is meant to serve as example of the kinds of features and differences among a few--things to consider when researching a CMS.
Drupal, for example, has been widely used for community or social networking sites where visitor interactivity is encouraged; it lends itself well to this format through a flexible commenting feature. It also is a great, flexible tool for Internet or intranet portals. Another standout feature of core Drupal is its finite permissions control for each user role, and for each module. You can create your own roles, as well.
With an active developer community and a plethora of free contributor modules, you should find plenty of tools from which to choose. And, if you don't find a module to do precisely what you need, two modules--Content Construction Kit (CCK) and Views--make Drupal highly customizable, allowing you to push/pull and manipulate data in a myriad of ways. All without having to access any programming code.
The Whitehouse recently rolled out a Drupal site, http://www.recovery.gov/, and the French Government also said oui oui to Drupal with their http://www.gouvernement .fr/. To prove that a CMS site does not have to be boring and templatey-looking, check out a few top-notch sites featured here: http://sixrevisions.com/web_design/31-drupal-content- management-system-cms/.
Among other uses, the author uses Drupal as a (private) client job ticket center, through the delightful JobTrack contributed module.