Services · Ship
A site is only finished when someone is running it
We build sites that load fast, work for everyone and can be found — and then we host them on infrastructure we operate, patch and monitor ourselves. This site is one of them, and everything it claims about itself is checkable.
Talk about a siteThe build
What we hold every site to
Not aspirations. These are gates in the pipeline, and a change that breaks one does not merge.
Static where it can be
Pages prerendered ahead of time, so a visit costs no database round trip. The fastest query is the one that never runs.
prerendered at build
Accessibility as a gate
WCAG 2.2 AA targeted, with an automated axe scan and a Lighthouse audit on every pull request. A regression fails the build.
axe + Lighthouse in CI
Performance budgets
Payload and Core Web Vitals thresholds enforced in the pipeline, so the site does not quietly get heavier one component at a time.
budgets, not reports
Found, not just built
Generated sitemaps that cannot drift from the pages, structured data, canonical URLs, and a redirect map so a migration does not lose your rankings.
sitemap generated from content
Content you can actually change
Structured content behind a typed contract rather than copy baked into components. A malformed edit fails the build instead of appearing on the live site.
schema-validated content
Security headers by default
HSTS, a content security policy, frame and referrer controls, and a permissions policy switching off the device APIs the site never uses.
curl -I and see for yourself
The hosting
What running it actually involves
Hosting is sold as a line item and delivered as an afterthought more often than anything else we do. Here is the whole of it.
Images are built in CI, tagged by commit, and pulled by the server — builds never run on the box serving traffic. A deploy waits for the container's own health check and fails if the live site is not reporting the commit that was just pushed.
Every service runs unprivileged, in a container with hard memory and CPU limits, bound to the loopback interface behind a reverse proxy. A runaway process takes down itself and nothing else on the machine.
Uptime and certificate expiry monitored externally, resource use and logs monitored internally, with alerts that reach a person. Log files are size-capped, because an uncapped log filling a disk takes down every service on the host.
Backups that have actually been restored, and rollback by redeploying a previous image tag — seconds, because the image is already in the registry. A backup nobody has restored is a hypothesis.
Being straight about it
Two things worth knowing before you ask
We are not the cheapest place to park a brochure
If you need five static pages and nothing else, a managed platform will cost you less than we will and serve you perfectly well. We will tell you that rather than quote for it.
We host what we build, and what we can support
We do not take over an unfamiliar estate sight unseen. We will audit it, tell you what we found, and then say whether we can run it — sometimes the honest answer is not yet.
Ask us what we would do with your site
Send the URL. You will get a specific answer about that site, not a capability deck.