In recent weeks I've been looking into a few open source Content Management System (CMS) projects. My initial interest was not, actually, in using a CMS but in finding one to dissect in order to get a better feel for building large, plugin-based application frameworks. There is a severe lack of documentation on plugin-based frameworks in general, so in true open source fashion the next step for me was "Use the Source, Luke!"
I only looked at a few, really, before I stumbled across Drupal. (To be fair, it had been recommended to me by a friend and fellow blogger.)
The first thing that impressed me about Drupal was its documentation. The module documentation was quite approachable, and the API well-documented and seemingly well-built. (I'll know for sure after I've written a few modules.) The interface, while a bit clunky in a few places, is reasonably straight-forward, without the heavy glitz that complicates Mambo, for instance. The installation is not as clean as WordPress's (what is?), but is fairly straight-forward and does have a significant advantage over Typo3, which requires doubling the default RAM size for PHP just to run the installer. The available modules for Drupal are reasonably impressive as well, and of course the fact that it's pure XHTML 1.0 Strict and CSS 2 code through-and-through makes me very happy. On the down-side, it does need some administration UI cleanup for large installations; the install/uninstall mechanism needs to be more automated, particularly for modules; and it's completely non-OO, where I happen to prefer OO-style programming.
What really won me over, however, was when their server crashed.
Barely 2 weeks after I started playing with Drupal, the shared server that ran all of the Drupal web, download, CVS, and mailing list functionality (and still kept up, already an impressive feat) was hacked through one of the other sites on the same box. While the core team spent a sleepless weekend trying to get things back together with a web host that was sleeping, they started a simple donation request to get a real server and a different host, hoping to raise about $3000 for a reasonable server. 48 hours and $10,000 in donations from the community later, the server was back up temporarily and Drupal's lead team suddenly had more money than they knew what to do with.
They'd already been talking to Open Source Labs (who hosts or mirrors over a dozen other major open source projects) about hosting a new server there, and figured this was a good time to switch. Then, out of nowhere, Sun decided that Drupal was sufficiently cool that they up and donated another server to the cause. The Sun employee who made it happen? Tim Bray, W3C's point-man on XML.
The links above go into more detail, but in short (I know, very out of character for me), Drupal now has 4 servers paid for by community donations and friendly megacorps, hosted by a major open source support group in a first-class data center with professional admins, and a community that's shown its commitment to keeping the project alive, kicking, and developing. As a developer / would-be Drupal user, that speaks volumes about how reliable I can consider the Drupal platform.
But wait, there's more!
By chance, one of the first threads I noticed on Drupal's forums was entitled simply She said 'YES'. For a day or two, the site logo changed to a romantic bit to announce that Drupal's original author, Dries Buytaert (who is still the lead maintainer), had just gotten engaged. The resulting contratulations was one of the longest threads in the forum. That's another sign of a healthy, active, supportive community; you know the developer(s), the developer(s) know you, and you all have lives that you are proud of. Forget corporate press releases about mergers and vaporware and switching to more proactive paradigms. Knowing that the developer is getting hitched and is sharing that with the enthusiast base makes me confident in using the program.
Why would any of the above matter to a technological decision? Because it means that Drupal won't become abandonware. Because it means that there really are 1,000 eyes finding bugs and improving features. Because it means that the people developing it care about the project for its own sake (enough to share good news with the community), and the people using it care as well (to the tune of $10,000 no less).
Software is all about the support, and the support community has shown itself to be strong and, well, supportive. That's how open source works, and why open source works.
Even if Drupal may not be the absolute best system technologically (although it's pretty darned good), I'm sold. I've already launched one Drupal-based site for a client, and have two more in the pipeline. The IRC support channel has been most helpful along the way.
Like the man said, "It's the community, stupid!"