Skip to main content

The Conservative Party

A platform based solution allowing us to use the same codebase on hundreds of individual websites.

The Challenge

Political parties in the UK have a somewhat fragmented structure, with local associations, interest groups and individuals all working in a semi autonomous fashion. This requirement means that a single party website is not enough; each association, group or individual really needs their own web presence to get their own messages to the public. When ComputerMinds started working with the party they already had an in-house platform for running and managing these websites. However, it was somewhat old and suffered from being inflexible, slow and insecure. ComputerMinds built a new feature rich platform - ‘Bluetree’ based on Drupal and using Aegir to manage the provisioning of many websites.

Our Solution

The first stage of this project was to create a bespoke platform on which hundreds of websites would sit. In addition to this we had to give some thought to an initial content migration to get content over from the legacy system we were replacing.

Centralised Website Provisioning

Aegir Screenshot
Example of a Bluetree website

Aegir

This project revolves around a large number of reasonably simple Drupal websites that all sit on the same platform maximising the use of Drupal's multisite functionality. This means that whilst each website is distinct in terms of look and feel and the data that drives it, every website on the platform sits on the same codebase - making it easy to apply changes/fixes across every website that sits on the platform.

In order to manage the provision of these websites we use a customised version of Aegir. Aegir is a Drupal provisioning tool that allows us to manage multiple Drupal websites from one place. We use these tools to kick off the initial build of a new website and poke some very basic configuration data through to the site at this stage - the result being an empty, branded Drupal website that can then be handed over to the client for content population.

When the time comes to update the platform, Aegir is clever enough to sanity check a migration from one platform to another to make sure that update patches are applied properly and everything runs as expected. If not it'll automatically revert to the last stable platform. This means that websites remain highly available during the update process. Conveniently we can also use Aegir to take regular backups of each website it manages so we can easily recover data in the event of something unexpected happening.

ComputerMinds have been heavily involved in the development of the open source Aegir platform from an early stage so we really understand how this powerful tool can be used for maximum gain, as this project shows!

Bespoke Admin Interface

Due to the nature of the websites that sit on our platform we had to be careful to accommodate less technically able users. To this end we created a completely bespoke admin interface allowing users much greater control over their website.

Content Migration

When ComputerMinds inherited this project the existing provision offered by the party had come to the end of its life and it was a key requirement to seamlessly migrate all the existing websites over to our new platform. To do this we made heavy use of Aegir. As Aegir is essentially just a Drupal website itself we were able to use our Drupal knowledge to create feeds for each of these existing websites and pull through everything we needed when building each website.

The result was a queue of nodes that represented websites that needed to be created complete with an import feed containing the content. Then it was just a matter of hitting go and a few hours later we had over 200 websites with our new look and feel complete with all the new functionality we'd created and all of the existing content pre-populated!

Rolling Development

Due to the long term nature of this project, each month we aim to roll out new features and bug fixes to the platform. To this end, each month we go through a small life cycle of analysis, implementation and testing before using Aegir to roll out changes.