Publishes mainstream content on GOV.UK
Ruby HTML JavaScript CSS
Switch branches/tags
Latest commit 87255e8 Apr 27, 2017 @mcgoooo mcgoooo committed on GitHub Merge pull request #618 from alphagov/change-help-rendering-app
Change help rendering app to government frontend
Failed to load latest commit information.
app Change Rendering app for help page to government frontend Apr 27, 2017
bin Bring ancillary files up to date with Rails 4. Apr 25, 2016
config Remove Business Support CSV export functionality Mar 29, 2017
data Remove temporary rake task Mar 24, 2017
db Amend LGIL codes Apr 12, 2017
doc Remove unnecessary file Sep 21, 2016
lib Change Rendering app for help page to government frontend Apr 27, 2017
log Add log directory Apr 4, 2017
public Remove some compiled assets Oct 12, 2012
reports Write CSV reports to folder within the app Jun 30, 2015
script Remove redis config file Jul 12, 2016
spec/javascripts Fix ID reference in parts JS. Mar 11, 2016
test Change Rendering app for help page to government frontend Apr 27, 2017
vendor/assets/javascripts Remove old HTML5 shim Nov 6, 2014
.generators Added tests to ensure that a publication cannot be destroyed if it is… Nov 1, 2011
.gitignore Remove database.yml and schema.rb Sep 30, 2016
.ruby-version Upgrade Ruby, Rails and dependencies. Mar 11, 2016
.simplecov Merge coverage reports so that unit tests contribute towards coverage. Dec 8, 2011 Define contributing guide Nov 29, 2013
Gemfile Update govuk_content_models 44.3.0 -> 44.4.0 Apr 21, 2017
Gemfile.lock Update govuk_content_models 44.3.0 -> 44.4.0 Apr 21, 2017
Jenkinsfile Use the new buildProject options syntax in the Jenkinsfile Mar 31, 2017
LICENCE.txt Add licence information to LICENCE.txt Apr 13, 2016
Procfile Adding Sidekiq and related config Mar 7, 2014 Remove live Business Support editions code Mar 29, 2017
Rakefile Run linter as part of the default rake task Mar 31, 2017 Bring ancillary files up to date with Rails 4. Apr 25, 2016 Add startup script. Mar 31, 2012


Publisher is the primary content design app for GOV.UK. It provides the user interface for entering all the key editorial formats and an API so other apps (primarily frontend) can access that data for display. It is sometimes referred to as "mainstream publisher".


alt tag alt tag

Live examples

Retired formats

  • Business Support
  • Campaign
  • Programme
  • Video


  • Artefact: a document on GOV.UK.

Technical documentation

This is a Ruby on Rails application that publishes the content for mainstream document formats to the shared mongo database. The frontend app reads this content from the govuk_content_api.


  • imminence - provides geographical search tools
  • rummager - search index for publisher. All changes are also sent to rummager to be indexed
  • content-store - new central storage of published content on GOV.UK
  • govuk_content_api - API providing content and metadata to frontend apps. Being deprecated in favour of content-store.
  • publishing-api - will provide workflow for all content published to GOV.UK - creating a new document, publishing it, etc. Content published here will end up in the content-store
  • govuk-content-schemas - defines the schemas for new-style document formats. Required to run the tests.
bundle exec rake local_transactions:import SOURCE=/path/to/local_authority_service_details.CSV
  • statsd - this application uses statsd-ruby to send metrics to statsd. If a statsd process isn't present on the server it won't matter as statsd-ruby sends metrics over UDP. If a statsd process is present then it'll send strings with the respective increment/decrement/gauge function to use.
  • asset-manager - manages uploaded assets (images, PDFs, videos etc.). Publisher needs an OAuth bearer token in order to authenticate with Asset Manager. By default, this is loaded from the PUBLISHER_ASSET_MANAGER_BEARER_TOKEN environment variable in config/initializers/gds_api.rb, which is automatically provided if using the development VM. Otherwise, to obtain this bearer token you should create an API user in the signonotron2 application. In the signonotron2 directory, to generate the bearer token you need, run:
rake api_clients:create[publisher,,asset-manager,signin]

Running the application

If you're just interested in running the Publisher locally, with a minimum of interaction with other apps, here's how. This assumes you're using this development setup.

cd /var/govuk/development
bowl publisher

Running the test suite

bundle exec rake

The test suite relies on the presence of the govuk-content-schemas repository. If should be at the same directory level as the government-frontend repository.

Or to specify the location explicitly:

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


MIT License