Public-facing app to display documents on
Ruby HTML CSS Shell JavaScript
Latest commit 3e544ea Jan 24, 2017 @fofr fofr committed on GitHub Merge pull request #231 from alphagov/wraith-examples
Add config and instructions for comparing examples with wraith

Government Frontend

Government Frontend is a public-facing app to display the majority of documents on the /government part of GOV.UK. It is a replacement for the public-facing parts of the Whitehall application.


A  Case Study


Not all formats that this app can handle are rendered by it in production.

Format Live example Production status
Case study View on GOV.UK Migrated
Coming soon Rendered by Whitehall
Consultation Rendered by Whitehall
Detailed guide View on GOV.UK Migrated
Document collection View on GOV.UK Migrated on live. Draft rendered by Whitehall.
Fatality notice View on GOV.UK Migrated
HTML Publication Rendered by Whitehall
Publication Rendered by Whitehall
Statistics announcement View on GOV.UK Migrated
Statistical data set View on GOV.UK Migrated
Speech Rendered by Whitehall
Take part View on GOV.UK Migrated
Topical event about page View on GOV.UK Migrated
Unpublishing Rendered by Whitehall, might not be migrated
Working group View on GOV.UK Migrated

Technical documentation

This is a Ruby on Rails application that fetches documents from content-store and displays them.


Running the application


The app should start on http://localhost:3090 or on GOV.UK development machines.

./ --live

This will run the app and point it at the production GOV.UK content-store and static instances.

Running the test suite

The test suite relies on the presence of the govuk-content-schemas repository. If it is present at the same directory level as the government-frontend repository then run the tests with:

bundle exec rake

Or to specify the location explicitly:

GOVUK_CONTENT_SCHEMAS_PATH=/some/dir/govuk-content-schemas bundle exec rake

Visual regression tests

Use Wraith ("A responsive screenshot comparison tool") to generate a visual diff to compare rendering changes in this application.

With government-frontend running on the development VM, navigate to the project directory and run

cd test/wraith
bundle install # only need to run this once to grab the dependencies

Compare with production

Compare development with production:

bundle exec wraith capture config.yaml

Compare staging with production:

bundle exec wraith capture config-staging-vs-production.yaml

This will generate image diffs comparing the two runs, including a browsable gallery of the output, located at test/wraith/shots/gallery.html.

Compare examples on master with examples on branch

With government-frontend running master on the development VM and while pointing at the dummy content store, create a set of historical screenshots using:

cd test/wraith
bundle exec wraith history config-examples.yaml

Then switch to your branch and create a set of screenshots to compare against using:

bundle exec wraith latest config-examples.yaml

Adding a new format

There’s a rails generator you can use to stub the basic files needed for a new format. It stubs the following:

  • Stylesheet
  • Template
  • Presenter
  • Presenter test
  • Integration test
bundle exec rails generate format [format_name]


MIT License