Ruby HTML JavaScript PLpgSQL Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app Generate a redirect path with arguments instead of string interpolation Aug 2, 2018
doc/arch Document disparity between DB and Publishing API Feb 28, 2017
lib Migrate URLs to the design system Jun 22, 2018
log Bare Rails application Oct 6, 2015
.rubocop.yml Add govuk-lint gem and rake task Jun 16, 2016
Gemfile Bump factory_bot_rails from 4.10.0 to 4.11.0 Aug 17, 2018


Service Manual Publisher is used for publishing and maintaining /service-manual. This application, together with service-manual-frontend replaced the previous Jekyll-based service manual.


Landing page screenshot

Edit interface screenshot


  • Guide: A guide is the main document format used for manuals.
  • Guide Community: A profile page that represents the community who curate a collection of guides.
  • Topic: A collection of guides.
  • Point: A point from the service standard.

Technical documentation

PostgreSQL-backed Rails 4 "Publishing 2.0" application for internal use, with no public facing aspect.

There is some disparity between the content as it appears in the database, and the content as it appears in the publishing api. This will need to be addressed if we switch to using the publishing api as our main data store in the future.

The Service manual's guide pages have a nested URL structure which is unusual for GOV.UK. The pros and cons to the nested URL structure are retrospectively documented.


Optional dependencies

To handle image uploads

To persist and render guides

NB: Every application above may have its own dependencies

You will need to clone down all these repositories, and run the following commands for each one:

bundle exec rake db:setup


To run the application in development you will need at least one user in the application database. In a rails console do:

User.create!(name: "My Name", email: "")

You can use Bowler to automatically run the application and all of its dependencies. To do this, you'll need to check out the development repository where the Pinfile is located.

cd /var/govuk/development
bowl service-manual-publisher service-manual-frontend

Alternatively, run ./ in the service-manual-publisher directory on the development VM.

cd /var/govuk/service-manual-publisher

The application runs on port 3111 by default. If you're using the GDS VM it's exposed on

The application has a style guide that can be accessed on /style-guide.


bundle exec rake


MIT License