History
I originally looked at Drupal back in 2001 when it was still hosted at
drop.org. I was looking for something that I could use to throw technical support documents on the web for our Staff. I evaluated several different products at the time including
PHPNuke,
MediaWiki,
DokuWiki,
MoinMoin, and
DotNetNuke; for those of you wondering
Plone didn't yet exist as a product and wouldn't have helped me back then either because of the next point. I was a Windows Systems Administrator at the time and there were some serious issues using php and python on IIS even with the fascgi ISAPI plugin. I should mention that I didn't quite like MySQL at the time either; It wasn't production quality in my opinion.
I ended up going with DotNetNuke for the next 2 years. It was based on ASP.NET and I could use a MSSQL Server for the database, since we were primarily a "Windows Shop". Overall it did what I wanted but it had some issues that finally made me toss it out. The permissions were not very robust at the time and I found it very difficult to give rights to certain content; primarily editing rights. By this time more documentation and now policies were being stored in the Portal. I call it a Portal since at that time it really wasn't a CMS of any sorts. This was the previous ETS Tech site that has now since been replaced with the TLT Staff Site. There was a developer community around DotNetNuke, but most the more talented developers were now only offering their code for fee through
SnowCovered.com and most as already compiled binary dlls. I only bought one component, but this was the last straw for me!
Now we come to January of 2003 and I started to evaluate a long list of hopeful products for our
ETS Intranet as we had been calling it for awhile. In addition to the other products above I also looked at
Joomla and Plone as possibilities.. among others. After installing and testing out each one I finally decided upon Drupal. It was the most flexible and easiest to bring online. There were still some issues with PHP and the fastcgi filter that took some tweaking, but in the matter of a week I had the entire site moved over and working.
Some may ask "why drupal?" over all the other products. This was not something I just picked off the shelf and decided to start using, in fact there was a short period of time I converted everything to DokuWiki and was going to use that. If it wasn't for the poor implementation of permissions and private namespaces I probably would have. Looking back now, I know I made the correct decision. I didn't fully understand why at that point in time either.
ok so "Why Drupal?"..
1. Truly Open Source Architecture
After 6 years of development version 5 of Drupal was released, and soon
version 6 near the end of this year. It is extremely well polished, well thought out and refined. The core drupal code consists of well documented mutiple API's that can be used to change almost any form, layout, content, page, authentication, "you name it" through drupal's module support. You can think of Drupal as one large API provider for developers to write their code against, with core changes being implemented based on the need of all developers and not just with one in mind. This also provides great security. Since version 4 migration paths for developers have been provided and continue to be documented as new code is being written. The current API documentation is located at
http://api.drupal.org.
2. Documentation
I can't say this enough, Drupal has some of the best documentation I have ever seen written for ANY product I have ever worked with; I can honestly say this unbiased. If you don't believe me then look for yourself at
http://drupal.org/handbook. You will find full documentation for all core modules, instructions for setting up your install, configuring your site, and even end user documentation. The documentation is extremely well written using Books (wiki like pages). All the code, including development and for all the modules, is located on the drupal.org site. There is a large community available online and through the Forums. The support page for Drupal is at
http://drupal.org/support; go see for yourself.
3. Module Support
There are hundreds of modules available to extend Drupal's core functionality. A large number of these modules are extremely well maintained and supported. This is where some criticism can be made about Drupal, particularly to the large number of modules that are no longer supported and that may not be coded particularly well. I don't fault Drupal for this as "anyone" can submit modules and create their own project, though space does have to be requested. However, since Drupal is a community building social networking space, anyone can submit bugs, fixes and patches to any project through the modules' project page and the maintainer of the project can accept or reject these changes and merge them into their code. A CVS repository is supplied for all projects including access to the drupal core. I've also seen a lot of heavily used modules change maintainers after the original contributer no longer has time for the project as well.
There are really too many modules to list in just this one post as you can see at
http://drupal.org/project/Modules. Some of my favorites are
CCK,
Case Tracker,
CivicCrm,
E-Publish,
Events,
Image,
MySite,
Organic Groups,
Panels,
Project,
SimpleFeed,
Video, and
Views. There are over 150 modules written to integrate with other products including del.icio.us, Digg, Feedburner, Flickr, Gallery, Google, LDAP, Moodle, OpenID, Phorum, phpbb, roundcube, shoutcast, Sype, SMS, Technorati, Twitter, WebCalendar, Yahoo, and YouTube. There is also a new exciting
Drupal for FaceBook module in development.
Which brings me to the next reason..
4. Community and Acceptance
The Drupal Community is huge! The
Drupal Association was launched in Jaunary 2007 providing support on Legal Issues, Marketing, Communication, Event Coordination, and local user group coordination. There are maintainers, contributers, and even their own
security team checking for vulnerabilities and sending out notifications immediately when a risk is found. Most of these security announcements are related to the 3rd party modules. These notices are sent immediately through email or can be subscribed to through rss. You can see this located at
http://drupal.org/security There are highly qualified programmers working on drupal and its contributed modules including developers from
Bryght,
Lullabot, and
CivicSpace Labs whom also provide training and support. Large companies like Adobe have
written code for Drupal and use Drupal for some of their community Sites and contribute back to modules such as the
Video Module.
Here is a list of sites using Drupal...
Eduacause,
Adobe,
Lifetime,
Warner Bros.,
20th Century Fox,
Eclipse from IBM,
The Onion,
Forbes,
AOL,
GreenPeace,
OSI,
Ubuntu,
Hillary Clinton,
Sony(built by lullabot),
Second Life,
United Nations,
MTV,
NATO, and
NASA just to get started. There are many more at
drupalsites.net and user submitted sites in the
Drupal Showcase forum; most include how the sites were designed and what modules they used; including an open discussion with the developer.
Part of the community is also located at
Groups.Drupal where discussions focused at using Drupal for particular uses, such as social networking, are openly discussed.
Why is there such an acceptance of the product?.. because it enables community building social networking spaces well.
5. Scalability and Security
Drupal is based on PHP and MySQL, both of which can be set up to support high availability load balancing setups. This wasn't true too many years ago, but today this is extremely well proven and in practice.
The same is true of security with PHP and MySQL. The drupal core API provided for developers to write modules has been well tested, supported, and pulled apart for security vulnerabilities. Once a vulnerability is found a new version of Drupal is released and can be easily upgraded against the past two versions; With turn around for major releases coming within usually a little over a year time-frame.
These are my reasons for choosing Drupal over some competing products, and why I find it the best product for community websites in particular. This can certainly be argued differently for Intranets; however if you want some of the same community features in an Intranet your crazy not to consider Drupal.
Let me know what you think in the comments, or if you find a correction I can update this post.
Thanks,
Jason