As I mentioned in my previous post, this site uses Drupal, an open-source content management system (CMS). Drupal and I have gotten to be old friends. Some of you would like it. Some would hate it. I like it but there are some parties where I know it wouldn't fit in.

First, why use a CMS at all?

When I say CMS, I'm talking about a system which does-- or at least can do-- everything. This site is entirely driven through Drupal. There are no plain HTML files lurking anywhere, it's all done dynamically with LAMP goodness (well, "FAMP", since this is on FreeBSD, but "FAMP" is even less well-known than "LAMP"). So the web site is more like a program running on my server than like something you'd create with, say, iWeb. Why do this?

At first, for me, it was just that I had realized that dealing with static HTML was too much of a pain in the ass to continue. Even using Dreamweaver I found it difficult to keep everything looking consistent, and even from day one I wanted something a little more dynamic. Initially I used Apache server-side includes to manage this, but it was ugly and awkward and I hated it. Plus I wanted to add a blog to the site, and while there are blogging tools that will work with static files (regenerating files as necessary before uploading), I found them lacking in various ways.

I like having a single interface for dealing with all of my web stuff. Some people prefer to do the site design with a tool like Dreamweaver, and then add something like WordPress for a site blog. That's fine, if that's what works for you. I don't want to have to use one tool for my site design and a different one for my blog, if I can avoid it. With Drupal I can, so for example the MondoMouse page was created in more or less the same way as this blog post. Drupal allows full HTML and even PHP in a post, if the site administrator (me) allows it (I do, for me anyway).

This approach also promotes consistency of design across the site. Drupal applies the same theme to every page on this site, so I get a consistent look over all of my pages, with no extra effort.

Using a CMS is also a great idea if you may have multiple people working on the site. It saves the trouble of trying to keep files in sync across all the contributors, since you can all effectively work on the site simultaneously.

Is this the best approach? Well, I like it. Other solutions exist, of course. Those with more Dreamweaver-fu than me might find it more effective. And of course you could just use SVN to sync files among multiple people.

So why Drupal?

Honestly, at the time I was looking for a CMS, it was the only one that seemed to have all the features I wanted. This situation may have changed, but I'm happy enough with Drupal that I'm not looking around much.

One reason for choosing one CMS over another is the implementation language. At least for software geeks like me, sooner or later the temptation to work on the system yourself becomes overwhelming. Drupal works for me in part because it's written in PHP. If you know and like PHP, that's an advantage. Those of you who consider PHP a crawling horror will probably want to look elsewhere.

A related detail is the potential for extending the CMS. I use Sparkle in my applications so that they can auto-update themselves as new versions become available. It looks like it should be pretty easy to add a Sparkle module to Drupal. That way I could update my Sparkle feeds just like I'm writing this message, and Drupal would even generate the RSS feed automatically.

Also you'll want to consider both the core features and any extra add-ons that are already available. Drupal has a dizzying array of add-ons to give you extra cool features for little or no extra effort, and that's in addition to the core features. These help frame the possibilities for your site. I've got a long list of modules I want to take out for a spin and see how they handle.

An important consideration is ease of installation. Some web hosts will help out here. Dreamhost and Media Temple, for example, offer one-click installation of a variety of CMS and blog systems. My own web host only seems to offer Movable Type, not quite a full CMS but well-respected. Don't let this be the deciding factor, though-- you don't want to end up with a system that's not meeting your needs just because it's easy to get it running. Most of these tools have simplified their installation over time (Drupal is a whole lot easier now than it was when I started), so it may not be a problem in the first place. If you intend on having a decent site, you'll end up spending a fair amount of time customizing the look of things anyway. This will easily take far more time than the installation.

If you're still not sure, check out "Is Drupal right for you". Many of the factors described there apply to other CMSs, although not necessarily to blogging-focused systems.