Anonymised case study

Confidential headless WooCommerce on Cloudflare with UCP

The client cannot be named. The publishable part: the architectural rule that kept the build affordable, the choice of Cloudflare for jurisdiction and TTFB, and the role UCP played in keeping the integration honest.

Starting constraint

The store had grown into a Frankenstein: many plugins, several years of theme overrides, a checkout that worked, and Core Web Vitals that did not. The buyer wanted a headless front but refused to break checkout, refused US-jurisdiction-only hosting, and refused to lock the front-end framework for the next decade.

Three constraints that, taken together, narrowed the architecture quickly.

Architecture decision

WooCommerce stayed the commercial source of truth. The front end moved to Astro on Cloudflare Pages with Workers for edge logic. UCP provided the integration boundary so that the front-end could be re-written later without touching the commercial back-end.

Cloudflare won on EU jurisdiction, on TTFB across European traffic, and on cost predictability. UCP won by being open and reversible, not by being trendy.

Cart and checkout boundary

The cart was a React island inside the Astro shell. The checkout stayed on WooCommerce inside an iframe-free, redirect-based hand-off. That kept payment compliance, tax handling, and stock movements inside WooCommerce, which is where the buyer's accountant wanted them.

Most of the perceived speed gain came from the catalogue side. Static-rendered category and product pages with edge cache, plus a small client-side cart hydration, beat the previous full-PHP-rendered store handily.

Delivery model

Delivery was incremental: catalogue first, search second, cart third, checkout last. Each stage shipped behind a feature flag at the edge. Rollback was a flip, not a deploy.

Editorial and product teams continued working in WordPress admin. Headless did not change their day. That was a deliberate decision.

Outcome bands

Exact numbers are confidential. Publishable: catalogue Core Web Vitals moved into green, TTFB across the European traffic mix dropped meaningfully, and the buyer reduced exposure to a single hosting jurisdiction.

The reusable lesson: headless WooCommerce wins not by replacing WordPress, but by drawing a clean integration boundary so each layer can be improved without touching the others.

Frequently asked questions

Why Astro and not Next.js?

The site was 90% catalogue and content, 10% interaction. Astro's minimal-JavaScript island model fit the workload. Next.js would have shipped more JavaScript than the workload deserved. The Tech Radar position is the same: Next.js for application-heavy front ends, Astro for content-heavy front ends.

Why UCP and not just REST?

REST works. UCP works better when the buyer wants to be reversible. The integration is open, the schema is typed, and a future front-end rewrite does not require re-negotiating the back-end shape.

Why Cloudflare and not Vercel?

EU jurisdiction, predictable cost at scale, and lower TTFB across the buyer's actual traffic mix. Vercel sits on Hold in our Q4 2026 Tech Radar for production European headless WordPress for those reasons.

Could the same approach apply to a smaller store?

Yes, but the cost calculus differs. Below a certain catalogue size and traffic volume, a tuned WooCommerce monolith on Cloudflare with edge caching is cheaper than a headless rebuild. Headless wins when the catalogue, the editorial team, or the integration surface starts to grow beyond what one PHP request can carry.

Want a headless WooCommerce sketch?

Send the current store footprint, the worst-performing templates, and the integration constraints. I will tell you whether headless is worth it now, in six months, or never for your store.

Request a headless sketch