Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



We're a team of data scientists, engineers and political experts, dedicated to bringing a rigorous, data-oriented, and impartial view to the 2017 UK general election.

About this Repository

This repository is a Jekyll site hosted on GitHub Pages. This gives us a framework into which we can create front-end applications and publish blog posts.

A suggested architecture is that we create data pipeline code in a subdirectory such as pipeline, and that this would target Jekyll's _data directory as its output location. Data files (JSON, YAML, CSV) in that output directory are available during templating when generating the static site.

Blog posts can be written in the posts directory and will be included in the generated static site. They support GitHub-flavoured Markdown.


Local changes to the site HTML and/or blog posts can be previewed using Jekyll's built-in development server:

bundle exec jekyll serve

Changes to Javascript components used for visualisations can be previewed by running the Jekyll server as above, and by instructing Webpack to watch and update the Javascript bundle as you edit:

npm run dev

Note: The development build output should not be committed, a fresh npm run build which compiles a more optimised version for production should be committed – see deployment instructions below.


Currently deployment is two-stage. The first stage is to build the front-end with npm run build, this will output a JS file to the site build directory, this should be committed. The second stage, which is handled by GitHub, is running the Jekyll build which will add the rest of the files to the site build directory and serve it.