Making documentation changes (using the Github interface)
At the bottom of each page of the hosted GDS Way there is a
View source link. This link will take you to to the corresponding Github page where you can use the pencil icon (
Once you have made your changes you can write a description, click the green
Propose changes button, and on the following page clickj the green
Create pull request button.
Making documentation changes (locally)
To make changes edit the source files in the source folder.
The bulk of the documentaion that makes up the GDS Way can be found in files located in the
You can add a new file to the source folder (or an appropriate sub-folder) to create a new page.
It is probably easiest to copy an existing file and change the name if you are new to writing text in markdown.
You then need to manually add your new page to one of the menu files in source/partials/_nav... for it to appear in one of the menus.
Raising and merging PRs to this repo
To submit changes to this repo, raise a PR in the usual way and these will be regularly reviewed by The GDS Way forum group that meets once a month. Reviewing and merging PRs at any time is fine, the forum will also review merged PRs as part of its regular meeting.
Any open non-draft PRs that have been more than 1 month without further comments, suggestions or alterations will be merged by the forum group unless there is an explicit "DO NOT MERGE" somewhere in the title or description.
There is a GDS Slack channel
#gds-way where these are discussed.
Making functional changes
To preview or build the website, we need to use the terminal.
Clone the repository using:
git clone https://github.com/alphagov/gds-way.git cd gds-way
Note M1 Mac users must run additional commands to tell bundler to use libraries relating to the specific architecture:
bundle lock --add-platform arm64-darwin-21 bundle config --local specific_platform true bundle config --local build.ffi --enable-libffi-alloc
Then in the application folder type the following to install the required gems:
bundle install --path vendor/bundle
Whilst writing documentation we can run a middleman server to preview how the published version will look in the browser. After saving a change the preview in the browser will automatically refresh.
The preview is only available on our own computer. Others will not be able to access it if they are given the link.
Type the following to start the server:
bundle exec middleman server
If all goes well something like the following output will be displayed:
== The Middleman is loading == LiveReload accepting connections from ws://192.168.0.8:35729 == View your site at "http://Laptop.local:4567", "http://192.168.0.8:4567" == Inspect your site configuration at "http://Laptop.local:4567/__middleman", "http://192.168.0.8:4567/__middleman"
You should now be able to view a live preview at http://localhost:4567.
If you want to publish the website without using a build script you may need to build the static HTML files.
Type the following to build the HTML:
bundle exec middleman build
This will create a
build subfolder in the application folder which contains
the HTML and asset files ready to be published.
This repo is continuously deployed from the
main branch by GitHub Actions, using the workflow defined in
Unless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.