Drupal is the oldest of the three popular open source web-based content management systems and has been refined considerably over the years. While it is generally considered a CMS it is more as an application framework making it well suited to projects that require a large degree of customisation.

The Drupal community support a large number of add-on modules to extend it’s functionality. These modules can be considered as building blocks allowing for a high amount of interoperability between them. Modules can be built upon and extended to provide additional custom functionality.

Drupal is built with PHP and can be hosted on both Linux and Windows environments and supports a wide selection of databases including MySQL, MongoDB, MariaDB, PostgreSQL, SQLite and Microsoft SQL Server.

Core functionality
Content management with support for pages or blog articles
Multi-level menus
Block elements
Forums, comments and polls
User and role management

Add on modules can extend Drupal to support:
Image galleries
Event calendars, and