One template. Every GP practice.
A single static template that gives any GP practice an NHS-style information page within minutes of a website provider failure. One shared codebase, one small configuration file per practice, no CMS, no build step, no third-party dependency.
These are demonstrations using fictional practices. No real practice names, phone numbers or patient data are used.
Three practices, one template
Each link below is served by the same practice.html, styles.css
and app.js. The only difference is a single JSON file in config/.
-
Riverside Medical Centre
London · practice code H85001
View demo → -
Oakfield Surgery
Manchester · practice code P86002
View demo → -
Hilltop Health Centre
Cardiff · practice code W92003
View demo →
Adding a practice
A new practice needs one new file in config/. Nothing else changes —
no folder is copied, no HTML is edited, no server restart is needed.
{
"name": "Leeds City Medical Practice",
"address": "45 Example Street, Leeds, LS1 1AA",
"phoneDisplay": "0113 000 0001",
"phoneE164": "+441130000001",
"emailScripts": "leeds.scripts@example.nhs.net",
"emailGeneral": "leeds.info@example.nhs.net",
"registrationCode": "B86001",
"hours": [
{ "day": "Monday to Friday", "time": "8:00am – 6:30pm" }
]
}
The page at /leeds-city/ then renders from that file automatically.
What is shared and does not change
- Page structure and content
- Accessibility features (WCAG 2.2 AA: landmarks, skip link, focus states, 48px targets, contrast)
- Mobile and print layouts
- Urgent-care signposting (NHS 111, 999)
- NHS App guidance
Why this matters
Silicon Practice was a single supplier serving hundreds of practices. When it entered administration, every one of those practices lost its website at the same time. This template removes that single point of failure: the code is static and hostable anywhere, the per-practice layer is one small file, and the NHS can own and distribute it centrally.
Compliance and hosting
- No cookies, no analytics, no third-party requests
- Works under a strict Content-Security-Policy (no inline CSS or JS)
- Deployable to any static host, or to ICB infrastructure
- Designed to meet WCAG 2.2 AA; formal audit and accessibility statement required before live use