Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Technical Documentation

This project uses the Tech Docs Template, which is a Middleman template that you can use to build technical documentation using a GOV.UK style.

You’re welcome to use the template even if your service isn’t considered part of GOV.UK, but your site or service must not:

  • identify itself as being part of GOV.UK
  • use the crown or GOV.UK logotype in the header
  • use the GDS Transport typeface
  • suggest that it’s an official UK government website if it’s not

👉 To find out more about setting up and managing content for a website using this template, see the Tech Docs Template documentation.

Before you start

Follow the Get started guide for Tech docs

Making changes

To make changes to the documentation for the Tech Docs Template website, edit files in the source folder of this repository.

You can add content by editing the files. These files support content in:

  • Markdown
  • HTML
  • Ruby

👉 You can use Markdown and HTML to generate different content types and Ruby partials to manage content.

👉 Learn more about producing more complex page structures for your website.

Preview your changes locally

To preview your new website locally, navigate to your project folder and run:


Or you can run it on Docker:

make serve

👉 See the generated website on http://localhost:4567 in your browser. Any content changes you make to your website will be updated in real time.

To shut down the Middleman instance running on your machine, use ctrl+C.

If you make changes to the config/tech-docs.yml configuration file, you need to restart Middleman to see the changes.


To build the HTML pages from content in your source folder, run:

bundle exec middleman build`

Every time you run this command, the build folder gets generated from scratch. This means any changes to the build folder that are not part of the build command will get overwritten.


Run bundle update to make sure you're using the most recent Ruby gem versions.

Run bundle exec middleman build --verbose to get detailed error messages to help with finding the problem.


You can find the pipeline here. It self updates when you merge any changes.

See here to set up variables.

How to contribute

  1. Fork the project (or clone for internal contributors)
  2. Create a feature or fix branch
  3. Make your changes (with tests if applicable)
  4. Raise a pull request


Unless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.

The documentation is © Crown copyright and available under the terms of the Open Government 3.0 licence.