Case study 01

Migrating bizee.com to a new stack with zero downtime

1,100+ pages

Context

Bizee is a U.S. business formation company. Its marketing site, bizee.com, is where every lead starts. It ran on Next.js and Payload CMS hosted on Vercel: more than 1,100 pages, with organic LCP at 2.1 s.

I was the Growth Tech Lead. I led the six engineers who owned the site and the order funnel.

Problem

The site had to move to Laravel and Statamic, starting from an empty repository. Every URL had to keep its search value. The site could not go down at any point.

A single cutover would have needed all 1,100+ pages ready on the same day. We needed a way to move pages in batches while the old and new sites served the same domain.

What I did

I wrote the spec and two architectures. In the transitional one, the old site on Vercel stayed in front. Vercel route rewrites sent each released page to the new site, route by route. The team could release a batch of pages or pull a single page back without touching the rest. The second architecture covered the site once every page had moved.

Then I led the six engineers through the release. We shipped about 4,000 SEO-preserving redirects. Every URL that changed got one 301 from its original address. A multi-layer cache (Cloudflare edge, static HTML, Redis for faster HTML generation) had per-page invalidation, with a Claude Code skill that purges only the pages a change touches.

I wrote the Claude agents that migrated the article library. Each run copied an article word for word from production, then checked element counts and exact text against the source. A person reviewed every result.

Outcome

Full cutover with zero downtime. Organic LCP fell 52%, from 2.1 s to 1.0 s.

I moved the site off Vercel to Laravel Cloud behind Cloudflare. Then I partnered with DevOps on GCP Cloud Run in two active-active regions. Hosting cost fell 58%. Cold starts went from 4.7 s to under 1 s.

Stack

Laravel, Statamic, Cloudflare, Redis, Claude Code