Client project
Corby United
A walking football club site built around the one thing that justifies a CMS: someone who'll use it.
Corby United is a walking football club in Northamptonshire. The audience is people between about fifty and seventy-five looking for a sport that won't finish off their knees, so accessibility was a requirement in the brief rather than a pass at the end.
This one was greenfield, with no old site to inspect, so the usual evidence about how a site will be used wasn't available. It came from the client instead. He'd spent a year sending match reports and Tuesday-morning photographs round on WhatsApp, which is a reliable sign that someone will publish given somewhere to publish to.
So the stack is the heavier one, and each part earns its place by that single fact. Sanity Studio holds all content and he writes in it without me. An Angular SSR app runs on a Lambda behind CloudFront and reads Sanity at request time, so a post is live the moment he publishes rather than after a rebuild. A webhook invalidates the distribution on publish, with a five-minute cache expiry sitting behind it for the occasions the webhook doesn't fire. A self-mutating CDK pipeline deploys on push.
Two services came out during the build. The .NET backend went once it became clear its last job, scoring a questionnaire that suggests whether the club suits you, was operating entirely on public content the page already downloaded. The scoring runs in the browser now. The contact form went with it, taking SES, a reCAPTCHA integration and a Secrets Manager secret along too, so nothing in the stack sends email. The pages show a phone number, which is what the audience was going to use regardless.
The design system is called Matchday and it runs on three rules: square corners everywhere, rules instead of boxes, and gold used as a fill and never as text on paper, because #F5B841 on cream measures 1.65:1. Alt text is required at the schema level, so a missing description is a validation error in the Studio rather than something to catch later.
The largest single measurable improvement came from images declaring the shape they'll occupy. Cumulative layout shift on the home page was 0.513, caused by images loading with no reserved aspect ratio and shoving the page around underneath the reader. Passing a real aspect to every image took it to exactly zero, and the page's performance score from 78 to 98.
Monitoring is four CloudWatch alarms into one SNS topic, with thirty-day log retention. No Synthetics canary, which bills per run. The free tier allows ten alarms per account and this account also carries the stacks behind the site you're reading.
In summary
CLS 0.513 to 0 78 to 98 100 accessibility 2 services deleted
This site got a CMS because someone was going to use it. New Vision Packaging, built in the same month, got none at all, for a client whose blog had last published four years earlier. The club is at corbyunited.co.uk.