The Utileau network
2026 · Seven production sites
Seven live websites, ninety-six hand-written pages, one npm workspace — and an infrastructure bill of nothing but domain renewals.
- Next.js
- TypeScript
- Tailwind
- Azure Static Web Apps
- Cloudflare
Live
The problem
A studio serving contractors, restaurants, manufacturers and price shoppers can't speak to all of them from one site — a roofer and a design-led brand want opposite things. The obvious answer is several sites. The obvious risk is that several thin sites read as a doorway network and get deindexed together.
What I built
- Seven Next.js apps in a single npm workspace, each statically exported so every page is a plain file with no server and no database at request time.
- Ninety-six pages, all written rather than templated. City pages were the danger: a set that survives find-and-replace between towns is precisely the pattern that gets a small network penalised, so each one is written from that town's actual housing stock and trade mix.
- Strict keyword separation so the sites capture different searches instead of cannibalising each other, with the parent site deliberately stripped of anything resembling a brand menu.
- Per-site deploys on path-filtered GitHub Actions, so touching one app rebuilds only that app.
- Seven Azure Static Web Apps, Cloudflare DNS, apex domains via CNAME flattening, and managed certificates throughout.
What I took from it
The whole thing runs on free tiers. Seven static web apps, one database, DNS and bot protection — total infrastructure cost is the domain renewals. The constraint made the architecture better rather than worse: with no server to lean on, everything has to be genuinely static, which is also the fastest thing you can serve.