Journal / Performance
Performance · 9 min read

Five apps, zero Lighthouse damage: how we ship widgets

App blocks, server-side rendering and why we refuse to load a framework on your storefront.

Dev Sharma
Engineering · 1 Jul 2026
article hero image 2000×1000 · drop chart or store screenshot here

Merchants running four or five apps from us worry, reasonably, about cumulative performance cost. Our answer is an engineering constraint we have not broken since 2019: no client-side framework ships to the storefront.

Server-rendered, not hydrated

Every widget renders as static HTML from the app block, with small, targeted JavaScript for interactivity — a heart toggle, an accordion — rather than shipping a bundle that hydrates the whole block on load.

The 6KB budget

Each app block is held to a median added-weight budget of 6KB of HTML and no render-blocking script. We measure this on every release against a Dawn theme baseline, not just in a lab.

None of this is exciting engineering. It is also the reason a store running five App Club apps still passes Core Web Vitals.

See the performance budget in the docs

Full breakdown of what each app adds to your PDP.

Read the docs