Introduction to

This is the documentation for the project that powers the website. It is organized thematically in order to create a central repository for all information pertaining to


This project is a work in progress. Nothing presented in this repo—whether in the source code, issue tracker, or wiki—is a final product unless it is marked as such or appears on In-progress updates may appear on

Technology stack

The standard technology stack for development of within the CFPB consists of the following base:

Additional dependencies


Versions for most front-end packages are kept updated in the project's package.json file.

Versions for back-end software including Django, Wagtail, Jinja, etc. are kept in the project's requirements files:

  • base.txt: shortcut for django.txt + wagtail.txt + libraries.txt
  • ci.txt: specific requirements for the continuous integration environment. Should/could be moved to CI configuration files?
  • deployment.txt: requirements for deployment, includes base.txt and a New Relic library that we don't install anywhere else.
  • django.txt: specifies the Django version. The file is used when running the site, but by having it separate we can test against other versions of Django by excluding this file.
  • docs.txt: requirements to build the docs.
  • libraries.txt: Python libraries.
  • local.txt: includes base.txt and some useful libraries when developing locally.
  • scripts.txt: Requirements for running certain jobs on Jenkins, so scripts can run in Jenkins without having to install all the other requirements.
  • test.txt: requirements for running Python tests.
  • wagtail.txt: specifies Wagtail version. In its own file to make it easier to test multiple versions, same as with django.txt.