Case Study · Headless Rebuild

The Shopify theme sent 385,680 bytes of HTML. The headless rebuild sends 3,084.

Same Shopify admin, same checkout, same inventory. We replaced only the layer the customer sees. Both storefronts are still live on their own domains, so you can fetch each one and count the bytes without taking our word for any of it.

385,680
Bytes of HTML, before
3,084
Bytes of HTML, after
over 100×
Lighter document
18 Aug 2026
Fetched with curl
The one number we hold

Same products. Same Shopify backend. A document two orders of magnitude lighter.

www.vasansi.comShopify theme
100%of the theme's HTML
Initial HTML document385,680 bytes
Fetched withcurl, 18 August 2026
Storefront layerShopify theme, Liquid
Shopify backendUnchanged
www.vasansi.netHeadless (Next.js)
0.8%of the theme's HTML
Initial HTML document3,084 bytes
Fetched withcurl, 18 August 2026
Storefront layerNext.js, Storefront API
Shopify backendUnchanged

Both figures are the whole initial HTML document the server sends, before a single script runs. Fetched with curl on 18 August 2026; both hosts answered 200. Open either domain and view source. There is no Lighthouse score, LCP or conversion figure on this page, because we do not hold a reading of our own for any of them.

See it, side by side

Same brand. Two architectures.

vasansi.comBefore · Shopify theme
Vasansi.com - Shopify theme before rebuild
vasansi.netAfter · Headless
Vasansi.net - headless Next.js storefront after rebuild

The challenge

Vasansi sells apparel on Shopify, and vasansi.com had grown the way storefronts do. A theme, then apps on the theme, then sections bolted onto the apps. Fetched on 18 August 2026, the homepage document alone was 385,680 bytes before a single image or script loaded.

Weight was not the only cost. Every new feature became a negotiation with template limits and with the app stack sitting on top of them.

What we built

We rebuilt the storefront as a headless Next.js application on vasansi.net, connected to the same Shopify backend through the Storefront API. The Shopify admin, checkout, inventory, and payments all stayed exactly as they were - only the customer-facing layer changed.

  • Initial HTML down from 385,680 bytes to 3,084 - curl, 18 August 2026
  • Per-device image optimization (AVIF/WebP), lazy loading, edge caching
  • A custom storefront built for the brand, free of theme constraints
  • Code-split JavaScript, so a first view downloads the route it is on and nothing else

The result

A storefront that sends 3,084 bytes where the theme sent 385,680, looks the way the brand wants it to, and has no template ceiling waiting for it next season.

What we have not measured is conversion. Nobody handed us the before figure, we did not run the test ourselves, and a lift we cannot reproduce is not a result. So this page does not carry one.

The old storefront is still online. That is the only reason this page can show a before at all.

Both storefronts above are still live, so the payload comparison is one you can run yourself. The same rule applies to everything in all the case studies we have published, which also sets out what we refuse to put a number against.

Want results like this for your store?

Start with a free audit - we'll show you exactly where your Shopify store is losing speed and conversions.