All articlesEngineering

Edge-rendered storefronts: a benchmark across 12 stacks

9 min read·May 14, 2026·By Brian Kamau, Principal Engineer

We took one real Shopify Plus storefront — 240 products, 18 collections, a custom configurator, and roughly 80k monthly sessions — and rebuilt it twelve times. Same design, same content, same Algolia search, same checkout. The only thing we changed was the rendering stack.

The twelve stacks

Next.js on Vercel, Remix on Fly.io, TanStack Start on Cloudflare Workers, Hydrogen on Oxygen, Astro with islands, SvelteKit on Vercel Edge, Nuxt on NuxtHub, SolidStart on Netlify, Qwik City on Cloudflare, Fresh on Deno Deploy, RedwoodJS on AWS, and Gatsby with SSR on Netlify. Every build was done by an engineer who had shipped production work on that stack — no first-timers.

Methodology

We measured TTFB, LCP, INP, and CLS at p75 from six regions (US-East, US-West, EU-West, EU-Central, Asia-SE, South America) using WebPageTest private agents on throttled 4G. We ran a four-week A/B test sending real production traffic in equal splits and measured add-to-cart rate, checkout-start rate, and completed-checkout rate.

TTFB results

The top of the table was tighter than expected. TanStack Start on Cloudflare Workers led with a 38ms global p75, Hydrogen on Oxygen came second at 41ms, and Qwik City on Cloudflare took third at 44ms. The bottom of the table was brutal: Gatsby SSR on Netlify averaged 312ms globally and RedwoodJS on AWS came in at 287ms.

LCP and the resumability story

Qwik City won LCP on slow mobile (1.1s) thanks to resumability — there's almost no JS to hydrate, so the largest image paints before competitors have even started parsing their bundle. Astro with islands came second (1.3s) for the same structural reason. The full-hydration frameworks (Next, Remix, Nuxt) clustered between 1.8s and 2.2s, which is fine but no longer best-in-class.

The conversion result that matters

Speed correlates with money. The three fastest stacks all converted 8–14% better than the median in our four-week test, holding traffic source and device constant. The slowest stack (Gatsby SSR) lost 22% of mobile checkouts to bounce before the cart page even loaded. At this storefront's volume that one stack choice was worth roughly $480,000 a year.

What we ship now

For new builds in 2026 our default is TanStack Start on Cloudflare Workers when we control the full stack, or Hydrogen on Oxygen when the client is committed to the Shopify-native path. Both give us sub-50ms TTFB globally with zero ops overhead. We only reach for Next.js when the client's team is already deep in the React ecosystem and migration cost outweighs the perf delta.

What this means for you

If your storefront's p75 LCP on mobile is above 2.5 seconds, you are leaving money on the table — full stop. Run it through PageSpeed Insights this afternoon. If you're above that threshold, edge rendering isn't a nice-to-have anymore, it's the single highest-ROI engineering project on your roadmap.