Prerequisites
Node.js and nvm
The project requires Node.js version 24 (as specified in.nvmrc).
Install nvm
nvm is a tool for managing different versions of Node.js. Follow the guidance on nvm’s GitHub repository to install it.Once installed, you can switch between Node.js versions easily.Python and uv
The project uses uv for Python dependency management.Install uv
Install uv using the official installation script:Alternatively, you can use other installation methods described in the uv documentation.
Pre-commit
The project uses pre-commit to ensure that committed code meets basic standards for formatting.Python Dependencies
The project uses several Python packages including:- Flask (3.1.3) - Web framework
- Flask-WTF (1.2.1) - Form handling
- govuk-frontend-jinja (4.0.0) - GOV.UK Design System templates
- notifications-utils - Shared utilities from GOV.UK Notify
- notifications-python-client (10.0.0) - Notify API client
- Gunicorn (25.1.0) - WSGI HTTP server
- Sentry SDK (1.45.1) - Error tracking
- Whitenoise (6.2.0) - Static asset management
Node.js Dependencies
The project uses:- govuk-frontend (6.0.0) - GOV.UK Design System assets
- Rollup - JavaScript bundler
- Sass - CSS preprocessor
- ESLint - JavaScript linting
- Stylelint - SCSS linting
Verification
After installation, verify that all tools are available:Once all prerequisites are installed, proceed to the Development Setup guide to bootstrap the project.