
Engineering
We build production websites on React and Next.js with server rendering, because content that only exists after JavaScript runs is invisible to a significant share of the crawlers that now decide whether a business gets found.
Context
The web stack decides whether your content exists for the crawlers that now decide who gets found. It is a visibility decision before it is an engineering one.
Architecture
Page structure as a machine reads it
An extractable page states its answer first, uses one heading level per section, and anchors its structured data to a single organisation entity. A page that buries the answer beneath a hero cannot be extracted at all.
Choices
Every choice below has a reason attached. A stack without reasons is a logo wall.
The questions we work through before recommending anything in this area.
Recommending something everywhere is the same as having no opinion.
Where we apply it
We build production websites on React and Next.js with server rendering, because content that only exists after JavaScript runs is invisible to a significant share of the crawlers that now decide whether a business gets found.
The web stack decides whether your content exists for the crawlers that now decide who gets found. It is a visibility decision before it is an engineering one.
A five-page brochure site with no content operation behind it: a managed CMS is cheaper to own; A team with no JavaScript capability and no plans to acquire one; the handover would fail; and Projects where an existing platform already meets the requirement and the only gain would be novelty
How much content, changing how often, edited by whom; Whether discoverability is a commercial requirement or an afterthought; and Who maintains this in two years
Static generation with incremental revalidation gives complete HTML on first byte, which is a requirement for AI crawlers, not just a speed optimisation.
On a site with hundreds of content-driven pages, a type error caught at build is a broken page that never reaches production.
Design tokens resolve in the browser with zero JavaScript cost. Runtime style engines add main-thread work on every render.
Interactive JavaScript is the exception, declared per component. A typical content page ships around 10 KB.
Connected
Bring the existing system and the constraints around it. We will tell you where this fits, where it would be the wrong tool, and what we would leave exactly as it is.