Support for government departments adopting AI coding tools.
Built with Eleventy and the GOV.UK Eleventy Plugin.
Live site: https://govuk-digital-backbone.github.io/aiengineeringlab_signpost/
├── app/ # Source content (Eleventy input)
│ ├── _includes/ # Nunjucks templates and partials
│ │ ├── back-link.njk
│ │ ├── custom-page.njk
│ │ └── custom-sub-navigation.njk
│ ├── explore/ # "Explore" section pages (.md)
│ ├── roles/ # "Roles" section pages (.md)
│ └── index.md # Homepage
├── docs/ # Built output (GitHub Pages serves from here)
├── .husky/ # Git hooks (Husky)
├── eleventy.config.js # Eleventy configuration
├── eslint.config.js # ESLint flat config
├── patch-sass.js # Windows path fix for govuk-eleventy-plugin
├── dead-links-check.js # Checks .md files for broken URLs
└── package.json
- Node.js (v18 or higher)
- npm
npm installNote: The
postinstallscript automatically runspatch-sass.jsto fix Windows path issues in the GOV.UK Eleventy Plugin.
Start the development server and view the site on localhost:
npm run devThe site will be available at http://localhost:8080.
Build the static site to the docs/ directory:
npm run buildThe output is written to docs/ (configured in eleventy.config.js) and is served by GitHub Pages.
Run ESLint to check code quality:
npm run lintRun tests:
npm testCheck for dead links in all .md and configuration files:
npm run dead-linksCheck code formatting consistency:
npm run format:checkFormat all files:
npm run formatCheck for security vulnerabilities:
npm run auditThe site is automatically deployed via GitHub Actions to GitHub Pages on every push to main.
- A push to
maintriggers the workflow in.github/workflows/deploy.yml - The workflow installs dependencies, builds the site with Eleventy, and uploads the
docs/output - GitHub Pages serves the site at
https://govuk-digital-backbone.github.io/aiengineeringlab_signpost/ - The
pathPrefixineleventy.config.jsensures all URLs include the repository name
- Make content changes in
app/ - Commit and push to
main - The site updates automatically — check progress in the Actions tab on GitHub
You can also trigger a deployment manually from the Actions tab using the "Run workflow" button.
In your repository settings, ensure GitHub Pages is configured to deploy from GitHub Actions (not from a branch):
- Go to Settings → Pages
- Under Source, select GitHub Actions
This project uses Husky and lint-staged to enforce code quality checks before commits.
After npm install, commits will automatically:
- Run ESLint with
--fixon changed JS files - Run Prettier on changed markdown, JSON, and style files
If a check fails, the commit is blocked. Fix the issues and try again.
Ensure all dependencies are installed:
npm installRun the check manually to see the error:
npm run lint # Check ESLint issues
npm run format:check # Check formatting issuesFix issues with:
npm run lint -- --fix # Auto-fix ESLint issues
npm run format # Auto-format filesIf you see version-related errors, ensure you are using Node.js 18 or higher:
node --versionIf Eleventy fails with missing package errors, try a clean install:
rm -rf node_modules
npm install- Static Site Generator: Eleventy (11ty) v3
- Design System: GOV.UK Frontend via @x-govuk/govuk-eleventy-plugin
- Templating: Nunjucks (
.njk) - Content: Markdown (
.md) - Code Quality: ESLint, Prettier, Husky, lint-staged
- Testing: Jest
- Hosting: GitHub Pages (from
docs/directory)