In a recent Slaw comment, Connie asked if someone would write something about Drupal. Subsequent comments from Patrick and Simon gave brief summaries, but I thought I'd go a bit further, and try to relay some of the basics surrounding this type of web software.
Briefly, Drupal is an open source CMS, written for the LAMP stack, which is modular in design. What does this mean? Well, let's start with a couple definitions.
- Open Source (OS) – open source software (generally) lets you download the software for free, view the source code, alter and re-distribute. Each OS product typically has a development community, which can be quite large in some cases, creating new features, fixing bugs, and helping each other when they have common goals.
- CMS – Content Management System, a database driven web-tool, which can deliver a variety of automated webpages. Content is created, edited, and archived within this system.
- LAMP stack – an acronym for Linux, Apache, MySQL, PHP. Linux is an operating system like Windows (only older, better designed), Apache – the webserver software that delivers the pages to your browser, MySQL – a high capacity database software, and PHP – the code that ties everything together. These technologies are frequently used as a group, and make up the most popular web-driven environment on the web.
What this all means, in layman's terms, is that Drupal (or any other CMS) is free to download and install on your webserver. It is then possible to do any of the following (to name a few):
- customize the functionality by adding different Modules
- Re-code any of those Modules to fit your needs
- Download different Themes to change the design
- Re-code any of those Themes to fit your needs
- Create user 'roles' and set permissions for what users can see & do
- Search all content, automatically track usage, and allow comments on any content element
The functionality also goes way beyond blogging. Think of it as a common delivery tool for: blogs, forums, wikis, RSS publishing, custom user profiles, image & photo galleries, event calendaring, and a ton of other content based tools. And all of these features are delivered by the same software mechanism.
My only caveat with this type of tool, is that you're working without a safety net. When things go wrong, the buck really does stop with you. Open Source communities are (mostly) great for helping to find the fix, but when the suggested fixes don't work, you might have to find a specialized consultant to help out — perhaps using the paid services part of the community website (as Patrick did). I haven't had to go that route yet, but it's good to know it's there.
On the positive end of things, the upside to open source products like Drupal is huge. There's a constant flow of new ideas, and I've found it to be the place for online innovation. To me, it seems that whenever a cool new website comes out, there's almost always an open source angle to its development. And if there isn't, a similar open source alternative comes out soon there after.