That's how Sarah Mercer, the firm's managing partner, opened our first call. The site had been built in 2009, redesigned in 2014, and patched continuously since. Three agencies had owned it. The current one had stopped responding to emails.
Before we quote a migration, we run our standard audit. Mercer's report came back at 47 findings — 6 critical, 14 warnings. The shape of the report dictated the shape of the rebuild.
Astro for the frontend (HTML-first, ships zero JS by default). Sanity for content (real-time editorial, structured schemas). Cloudflare Pages for hosting (free, global, instant rollbacks). Wired together in a 3-week build.
Real-time multiplayer CMS. Lawyers can edit live. Drafts preview before publish.
Triggered by Sanity webhook. Builds the entire site in 18 seconds. Atomic deploy.
Static HTML served from 285 locations. < 50ms TTFB worldwide. Zero infrastructure.
HTML-first page. JS hydrates only the contact form. Total page weight: 84kb.
HTML-first means the page is usable before any JavaScript runs. Mercer's site ships zero JS to most pages — interactive bits (the contact form, the case-search filter) are islands that hydrate independently.
The lawyers wanted a "Word document, but for the website." Sanity's portable text editor + custom schemas got us there. Three of the four partners now publish their own articles — without filing a ticket.
Free. Global. 285 edge locations. Atomic deploys mean every push is a new immutable version — rollback is one click. Old WP host bill: $240/mo. New: $0.
Three weeks. Fixed price. Here's how the days actually went.
The visual didn't change much. Everything underneath did.
Three months post-launch.
The migration was almost boring. I expected disasters — broken links, lost rankings, the partners losing their minds at a new CMS. None of that happened. Three weeks in, we were live. Six weeks in, we were getting more inbound calls than we had in years.
Start with a free audit. We'll tell you exactly what's wrong and how much we'd quote to fix it. No commitment, no sales call (unless you want one).