Why we use Drupal
Over the last couple of years, our development approach has shifted considerably. When we originally began doing client work, we regularly used a fairly wide variety of tools (Wordpress, custom apps in PHP, Ruby on Rails, or Java enterprise) in addition to Drupal to accomplish our clients' wide variety of projects.
Since the release of Drupal 5 & 6, we've seen the Drupal project mature into a very capable general purpose tool. As a result, we've transitioned away from having a large toolbox of languages and tools to use on a given project, to building most of our projects on Drupal.
What is Drupal?
Drupal is an open source Content Management System (or perhaps more accurately, a Content Management Framework). In high-level terms, it is a software package which can be customized to create websites with widely varying capabilities, from large social networks, to running a newspaper, to applications such as a CRM or a rental fleet tracking and reservation system.
Why do we use Drupal over other CMS systems?
There are many other Content Management Systems, such as Joomla or MODx, which have been written to do the same task as Drupal. So why do we choose Drupal for our projects over these others?
- It's open source - Drupal, like many other Content Management Systems, is Open Source. This means there are no license fees to use it, and the code is completely open an transparent. If we find a bug in Drupal, we can report it, fix it ourselves, and contribute the fix back to the community rather than depend on the original development team to fix the bugs. Hundreds of shops and individuals fixing and improving Drupal means much stronger and secure code.
- Clear, well-documented API - Many of our clients have specific requirements that cannot be fulfilled using core Drupal or community modules. In these instances, we often have to write custom modules to extend Drupal. Having a clear and well documented API saves us both time and frustration, which translates into saving our clients money.
- Flexibility - Each new release of Drupal is more flexible than the last. This is due, in many ways, to the power of the API mentioned above. This is not to suggest that Drupal is encumbered with many features users will never use. Core Drupal is kept slim and mean, with much added functionality coming by way of community module.
- Large User Community - Drupal has a strong community of users. This means that when we encounter a situation new to use, there is usually someone who has been there before. Being able to rely on community experience (and in turn offering our experience) means much less time hacking through problems.
- Responsive & Approachable Developer Community - When bugs and security issues are found, or new features are suggested, the Drupal development community is quick to get stuff done. User feedback is sought, and the development process is very transparent.
- Secure - Drupal's codebase is very secure. A lot of care is taken to prevent opening potential exploits. On rare occasions, exploits are found. Usually, they are fixes on the same day, and a new version of Drupal with the exploit closed is made available for download. This, combined with the the simplicity of keeping Drupal up-to-date, makes it secure.
Of course, there are situations where Drupal doesn't fit the bill. In these cases, we recommend solutions based on other software packages. As an example, for a client who wants a full-featured blog, but has no intention of ever adding new features, we would recommend a solution developed based on Wordpress.
Why choose Drupal over a custom application?
In most cases, writing a custom application is not feasible, since a large part of what is required for a client's website, from user authentication & authorization to content theming and display, is already part of Drupal. Using existing code is far more cost-efficient than writing our own. Additionally, given the large developer community, the code in Drupal is far more secure and feature complete than we would be able to offer from our own development team within a reasonable budget and time frame.
There are rare cases where neither Drupal, nor any other existing software package, will fill the client's requirements. In these rare cases, we still write custom applications for our clients.
Will we use Drupal forever?
At this point in time, we feel that Drupal is the best CMS to invest our time and effort into; however, this may not always be the case. There are hundreds if not thousands of other CMS platforms available, and there could very well come a time when we feel that it is time to move away from Drupal to another platform.
For this to happen, another platform has to clearly surpass Drupal not only in features, but also in philosophy and community. This is the beauty of open source - the tools we use are what me make them.
We generally have at least one other CMS running on our development server in order to play with it and judge it's capabilities. Over time, we've found some promising software, but nothing yet that surpasses Drupal.
The bottom line
For most of the projects we build for our clients, basing our work on the Drupal platform allows us to offer our clients a better product at a better price than we are able to achieve using other platforms or writing custom applications. It saves us a lot of headaches and frustrations in the meantime, which leads to far more efficient use of a client's budget.