In 2010, Vote for Policies created a service to help voters make an informed decision about who to vote for in the general election. The service quickly gained popularity, so much so that it had problems with scalability. Additionally, the user experience was not optimised for mobile devices, which led to a high drop off rate.
As the 2015 general election approached, Vote for Policies raised money via crowd funding and began looking for a partner to help create a new service.
We smashed the 2010 election figure of 280k completed surveys with a whopping 910k this time around. 150k of these were in the last 24 hours and the site peaked at 6500 concurrent users. Over 50% of all visits to the site were on mobile devices and the drop off rate was 25% less than in 2010.
The site also proved to be extremely popular with big name celebrities; it was blogged about by Richard Branson, tweeted by Caitlin Moran and mentioned by Paloma Faith at her gig. Big names in the media also ran articles on the service including The BBC, The Guardian and The Observer. You can see the full list of media coverage here.
Above all, according to a national poll conducted by TNS, the electorate were were 35% more likely to vote as a result of using the Vote for Policies service.
How we did it
“The main challenge was to ensure the design did not imply any political allegiances. Because of the neutrality of the product we chose a muted colour palette, which in turn ensured that our design didn’t distract end users from the main goal of completing the survey.
Given the limited opportunity to use individual colours, we opted to lift the design by including the colours from every party in a subtle keyline across the application.”
“At the heart of the Vote for Policies project was the need to reach as many people as possible; a mantra that’s at the core of progressive enhancement which we employ in all of our frontend builds.
The application was developed mobile-first, ensuring a best possible experience on the medium which we anticipated most usage, with particular attention made to reducing http requests where possible, as well as reducing asset size.
The consistancy of the design and speed of development was facilitated by the use of a pattern library powered by the Fabricator NPM package.
The base experience was enhanced with AngularJS to ensure as much could be done in a rich client without unnecessary round trips to the server. With accessibility being the core component in developing a successful web experience, consideration was made to each piece of the UI to ensure they were semantically marked up and where required, ARIA roles added to aid assistive technologies.”
“Something we learned from the 2010 version of VFP was that the site had to deal with large traffic spikes if mentioned by someone in the public eye and during the last few days of the election campaign. We architected the new version from several perspectives; firstly, our PHP application was optimised for performance, using nginx fastcgi_cache as a whole page cache on each of our application servers, secondly, our data storage policy, whilst utilising MySQL as the underlying database, made significant use of Redis as a result cache throughout.
When it came to storing data in MySQL, we developed a non-blocking system by pushing queries onto worker servers via a messaging system (RabbitMQ). The final piece in the jigsaw was the use of horizontal scaling, using Amazon’s elastic load balancing (ELB) service to automatically add and remove servers when required.”