Modern websites, ranked in AI searchCited by ChatGPT, Perplexity & Google AI OverviewsLower than your current SEO spendModern websites, ranked in AI searchCited by ChatGPT, Perplexity & Google AI OverviewsLower than your current SEO spendModern websites, ranked in AI searchCited by ChatGPT, Perplexity & Google AI OverviewsLower than your current SEO spendModern websites, ranked in AI searchCited by ChatGPT, Perplexity & Google AI OverviewsLower than your current SEO spend
Digital case study

North Stack — Regulated-Ops AI Studio

From a 6-page client-rendered Lovable SPA to a 34-URL edge-rendered studio site with 8+ schema types and a first-class AEO layer that serves a markdown version of every page to AI agents.

A UK regulated-operations AI studio rebuilt from a 6-page client-rendered Lovable SPA — invisible to search and AI, with a contact form that never sent — into a 34-URL edge-rendered site with 8+ schema types and a first-class AEO layer.

North Stack — Regulated-Ops AI Studio

Client

North Stack

Completed

June 2026

Challenge

A 6-page Lovable single-page app that looked clean and did almost none of the job. The contact form opened a mailto draft and captured nothing; the newsletter discarded every signup; the site rendered in the browser, so every page served a blank shell to Google and AI crawlers; one schema block on the homepage and none elsewhere; no sitemap, no llms.txt; the OG image pointed at a dead staging domain; and broken links returned 200 instead of 404.

Solution

A full edge-rendered rebuild on TanStack Start + React 19 + Cloudflare Workers: 6 pages to 34 indexable URLs, a cohesive brand system, 8+ JSON-LD schema types, a working Cloudflare Turnstile contact form, and a first-class AEO layer — Content-Signal directives, RFC 8288 Link headers, an /llms.txt index, and a build-time markdown version of every page served on Accept: text/markdown.

Edge SSR on Cloudflare WorkersPer-route JSON-LD (Organization, Service, Article, BreadcrumbList, FAQ, Person)Content-Signal directivesRFC 8288 Link headers/llms.txt indexAccept: text/markdown content negotiationBuild-time markdown of every pageCloudflare Turnstile contact formCite-met hostingTanStack StartReact 19Vite 7Cloudflare WorkersEdge SSRTailwind CSS

Before & after

Before

Before — Homepage: a generic blue template became a positioned, edge-rendered studio site.

After

After — Homepage: a generic blue template became a positioned, edge-rendered studio site.
Homepage: a generic blue template became a positioned, edge-rendered studio site.

Before

Before — The PMD Finance case study moved from a section buried in the homepage scroll to a page of its own under /work.

After

After — The PMD Finance case study moved from a section buried in the homepage scroll to a page of its own under /work.
The PMD Finance case study moved from a section buried in the homepage scroll to a page of its own under /work.

Before

Before — Insights: the same writing, rebuilt on a foundation search engines and AI agents can actually read.

After

After — Insights: the same writing, rebuilt on a foundation search engines and AI agents can actually read.
Insights: the same writing, rebuilt on a foundation search engines and AI agents can actually read.

Before

Before — The learning section, before and after.

After

After — The learning section, before and after.
The learning section, before and after.

North Stack is a UK AI studio that builds automation for regulated operations, the document processing, claims, and reporting work that off-the-shelf software won't touch. Their team comes out of UK Parliament, Lloyds, HSBC, and the Association of British Insurers, and their client work is serious. Their website was not. When we looked at it, it was a six-page Lovable single-page app that looked clean and did almost none of the job a website is supposed to do.

The problems were the kind you can't see from the front end, which is the worst kind. The contact form didn't send anywhere; clicking submit tried to open the visitor's email client, so on a phone or a locked-down work laptop it did nothing at all. The newsletter box showed a thank-you and then discarded the address, with a line in the code that quietly admitted as much. The site rendered entirely in the browser, so every page handed Google and every AI assistant the same empty shell and trusted their code to fill it in later, which a lot of crawlers never do. There was one schema block on the homepage and none anywhere else, no sitemap, no llms.txt, and the social-share image pointed at a staging domain that had stopped existing. Broken links returned a 200 instead of a 404. Six pages, and most of the proof the business had spent two years earning sat behind a blank page as far as a machine was concerned.

We didn't reskin it. We rebuilt the foundation, then put the brand on top. The new site runs on TanStack Start and React 19 as a server-rendered application on Cloudflare Workers, so a finished page streams from the edge before any browser code runs, for a person or a crawler or an agent alike. Six pages became thirty-four indexable URLs: a services hub with seven service pages, five case studies each on their own address, four industry landing pages, a methodology page, a working blog, and the legal pages a regulated buyer checks before they trust anyone. The contact form posts to a real backend behind Cloudflare Turnstile and sends back a confirmation. Structured data went from one type to more than eight, including per-author Person schema that ties each article to a named expert.

The part we're proudest of is the part almost nobody is building yet. We made the whole site readable by AI agents, what's becoming known as answer-engine optimisation: a Content-Signal directive in robots.txt, RFC 8288 Link headers on every response, an llms.txt index of the site, and a build-time markdown version of all thirty-four pages, served the moment a client sends an Accept: text/markdown header. The old site gave AI assistants nothing. The new one hands them the whole site, ready to read, which matters more every quarter as regulated buyers start their research inside ChatGPT, Perplexity, and Claude rather than Google.

For anyone who wants to know how much work this actually is: the rebuild touched 162 files and added a little over 14,000 lines, and the migration commit alone retired around 8,000 lines of the old app. It runs across 21 route templates and 81 components, with more than 30 bespoke isometric illustrations generated from a single locked visual recipe so every page reads as the same company. The before-and-after below walks through it, page by page.

Project Gallery

Gallery image 1
Gallery image 2
Gallery image 3
Gallery image 4
Gallery image 5

Outgrow your current agency.

Send us your URL and we'll send back a 24-page audit with Lighthouse, AI citations, and the gaps your competitors are exploiting.

Audit my site