Architecture and software development
Read more about how to design, build and deploy a Defra service.
This guidance builds upon the GOV.UK Service Standard and the GOV.UK Service Manual. You should also familiarise yourself with the Defra outcome delivery group model (opens in a new tab).
This guidance should be followed when you are:
- building a GOV.UK digital service
- building an internal digital service at Defra
This guidance may not apply if you are:
- deploying a commercial off the shelf software
- building a data or reporting platform
Getting started
To get started, you should:
- Contact the Delivery Architecture team
- they'll help you architect your service and explain governance requirements
- they'll let you know the principal architect for your delivery group
- Review the Defra software development standards
- these are mandatory and the Delivery Architecture team handles any exceptions through their governance process
- Work with the Delivery Architecture team to decide if the Core Delivery Platform is right for your service. This is Defra's strategic platform for building and deploying services.
You will need to read the following documentation if your service adopts the Core Delivery Platform:
- onboarding considerations to understand what the platform offers
- architectural overview to learn how the platform is built
- how-to documentation
To access the Core Delivery Platform, you will need to be on a Defra device or VPN.
Recommended approach
To deliver a service that meets users needs faster and at a lower cost, follow these guidelines:
- build on the Core Delivery Platform
- use Defra's common tools as part of your service
- use Defra's approved technologies and languages
- code in the open from the start, storing code in the Defra GitHub organisation
- analyse code in the Defra SonarQube Cloud organisation
- follow Defra's README standards
- maintain solution overview documentation, architecture decision records and architecture diagrams
Approved technologies and languages
Defra restricts the languages and frameworks you can use. You should:
- use Node.js with the Hapi framework for frontend and backend services
- only consider .NET or Python for workloads where Node.js is not suitable
- use the GOV.UK Frontend Nunjucks templates to build your pages, don't use other frontend frameworks like Vue or React
- use vanilla JavaScript
More details can be found in the Defra software development standards. If you need additional technology, check the Defra Tools Radar on Jira (opens in a new tab). You can review approved technologies and request new ones there.
Common tools
| Tool | Description |
|---|---|
| Core Delivery Platform | Defra's internal developer platform for building, deploying and running services |
| Defra Customer Identity | External authentication and authorisation |
| Defra Forms | Create accessible forms that follow GOV.UK standards |
| Defra Interactive Map | Accessible frontend mapping component |
Get support
If you need help designing or building your service, contact the Delivery Architecture team.