Content Management System Overview

This is just a brief summary of some of the Content Management Systems I've used and what they're good at/bad at, to hopefully help you make better decisions when deciding how to go about your next CMS driven website.

Drupal is a very powerful open source content management system.  It is tailored towards building online communities with out of the box profiles, forums and blogging modules.  The potential is pretty limitless with knowledge of php and the drupal API you can get down and dirty and build just about anything you'd want to extend it's features.  It also has a template system that allows you to style things to your heart's content.  With blocks, you can have panels of content replicated in specific areas on every page of your site or only specific pages which can all be customized down to the page level with templates. The downside of Drupal is that the learning curve can be pretty steep and if you don't have the time to put into it, the administration page can seem quite overwhelming. Also, if you're not very versed in code, as with anything, you'll be limited to the features and modules others have built.

Expression Engine
A very cool proprietary CMS based on weblogs (content) and templates (the code).  You can build templates which can be html, xml, rss, css, javascript, etc.  For building an expression engine site I find it's easier to get the layout set up first as a template for an html page in something like dreamweaver or your favorite html editor.  You basically copy the code into the template system and then specify repeaters which allow for updated content.  For example, you could create a weblog of feeds, like a blog feed, and have both an xml file and an rss file that reference that weblog, so when you publish a story to it, both of them will be updated with the new content, you can do this by having repeating content within html pages.  You can also nest templates so you don't have to have one massive template you're always scrolling through, potentially breaking them up into sections, like headers/footers/etc.

A great blogging engine which is often used as a CMS.  I use this for my blog as I like the admin panel and extensive features it has for blogging.  You can also build pages and template the site with themes or you own style sheet and get into the code and tweak the layout all you want.

Another open source CMS, I've heard this one is easier to learn than Drupal, but haven't had the opportunity to use it yet.

When choosing a CMS you'll want to know as much as you can about what kind of site you will be building, who will be using it, what it will be used for and then research the benefits or drawbacks of each system before you start building.