The Federal Election Commission is responsible for regulating and reporting campaign finance data. With help from 18F, the FEC replaced their aging website with a new one built on Django and Wagtail.


As part of the FEC site overhaul, the 18F team needed new Wagtail templates for publishing reports, weekly digests and news releases. The templates required specific presentation for typography, images and authorship. Additionally there would need to be custom Python code and database tables for associating authors with articles.


The schedule for the project was extremely short⁠—less than a week⁠—so our first step was to comprehensively investigate every unknown and convert it from a risk to a plan. We alternated between pairing and working individually to maximize productivity while ensuring there wouldn’t be any miscommunication on the team.

It quickly became apparent that the biggest challenge would be coming up with a way to manage the many-to-many relationship between articles and authors, something that Django supports but Wagtail doesn’t. We were able to identify a solution that enabled Django’s support for inline relationships to work seamlessly in the Wagtail admin.

At Scampersand we like the phrase “yards after the catch,” referring to the extra distance the receiver runs after catching the football. On this project, our YATC was to enable coverage measurement of the Python tests, to ensure that our new code was being tested properly.

A few days later, we filed the pull request: on time, following project markup and style conventions, with tests and documentation. The 18F team was delighted.

Django/Wagtail Development • Front-End Development