Drupal is a general-purpose content-management system (CMS) for running news-and-discussion sites like (to use the most obvious example) Slashdot, though perhaps not such busy ones. I’d been considering toying with something like this for some time, and finally got around to installing it today.
The only hitch in something like this is that you need to set up a MySQL database, which can be intimidating for non-nerds, and configure a file to find that database (which took me a while to get right, mostly because of my inability to follow instructions). But for the most part, installation is a snap. After that comes configuration. Drupal, like many of its ilk, is endlessly configurable, and has numerous add-on modules available. It gets a little tricky because it is based on some rather abstract and non-obvious mental models, and the docs are not as clear as they should be. But after some messing around, I started getting it to do what I wanted it to.
I’ve been using Movable Type for some time now, and that’s become my point of reference. MT is a very sophisticated tool for one kind of task: blogging. Individual content management. MT is narrow but deep. Beyond that, it can be used for wider purposes thanks to its flexibility, but it becomes increasingly difficult to keep up the farther you get from straight blogging.
Drupal, by contrast, is relatively shallow but wide. Blogging is just one module in it, although its blogs are not as sophisticated as MT’s. And in some ways, the customization threshold is higher. MT has its own HTML-like language of tags, so if you can write HTML, you can create your own templates in MT. With Drupal, it seems that you need to know some PHP in order to do more than shuffle around pre-made modules.