Why We Picked Liquid Over React for a B2B Shopify Storefront
The Headless Trap
Headless Shopify with React or Next.js has become the default recommendation in 2026. Every conference talk, every Twitter thread, every agency pitch deck assumes that if you are building a serious Shopify storefront, you are going headless. The argument is always the same: more control, better performance, modern tooling.
The argument is also frequently wrong. We recently shipped a B2B/B2C storefront in classic Shopify Liquid — the same template language Shopify has used since 2006 — and it is the right architecture for that product. Not because we couldn't have gone headless. Because going headless would have introduced complexity the merchant did not need, the customer did not benefit from, and the engineering budget could not support. The lesson is one most builders learn the hard way: pick the technology that fits the problem, not the technology that signals sophistication.
What You Lose When You Go Headless
The biggest hidden cost of headless Shopify is the merchant. The whole reason Shopify wins in the first place is that merchants can manage their store without a developer. Add a product. Edit a description. Reorder collections. Run a flash sale. All of it through the admin, no PR required.
When you go headless, much of that breaks. The admin still has those features, but the storefront either has to fetch live data (latency cost) or rebuild on every change (deploy cost). Sections and metafields that were drag-and-drop in classic Liquid become custom React components that require a developer to add or modify. The merchant loses self-service. The team that built the store becomes a permanent dependency. For a fast-moving D2C brand running constant promotional campaigns, this trade-off can be fatal.
Shopify 2.0 Is Already Modern
Classic Liquid in 2026 is not the Liquid of 2015. Shopify 2.0 introduced JSON section templates, dynamic sections, app blocks, and metafield references — all of which give Liquid templates the composability that used to require headless to achieve. A merchant can drag and drop sections on any page. They can add app blocks (Reviews, Shipping Calculators, Trust Badges) without touching code. They can edit metafield values on a product and have them render anywhere in the theme.
For our B2B store, the section model was perfect. The home page, collection pages, and product pages are all composed from sections the merchant can rearrange. The trade pricing display, the contractor application form, the bulk-order calculator — all custom sections we wrote in Liquid that the merchant can add to any page through the admin. No deploy. No PR. No developer. That self-service capability is the actual feature, not the framework.
Performance Is Better Than You Think
The argument for headless usually invokes performance. Server-rendered Liquid is supposed to be slow. Modern frameworks are supposed to be fast. The reality is more nuanced. Shopify's CDN caches Liquid-rendered HTML aggressively at edge nodes worldwide. TTFB on a properly built Liquid theme is usually under 200ms globally — fast enough that the bottleneck becomes downstream JavaScript and image weight, not the framework itself.
A poorly built React storefront can absolutely be slower than a well-built Liquid one, because React introduces a hydration cost on every page load. Even with code splitting, the user is downloading and parsing JavaScript before the page becomes interactive. A Liquid page is interactive immediately — there is no hydration phase, because the page rendered on the server with no client framework. For e-commerce specifically, where conversion correlates directly with time-to-interactive, this is a real advantage.
When Headless Actually Wins
Headless wins in specific scenarios. If you have a single global app shell that wraps Shopify alongside other systems (a marketplace platform, a multi-brand portfolio, a SaaS-meets-storefront product), headless lets you compose them into one application. If you have a content-heavy editorial side that lives in Sanity, Contentful, or a custom CMS, headless lets you mix that content seamlessly with commerce. If you need real-time features (live inventory, multiplayer carts, video commerce), headless gives you the runtime control you need.
For a relatively standard storefront — even a complex B2B/B2C one with two-tier pricing and a contractor portal — Liquid is probably the right choice. The merchant gets self-service. The performance is excellent. The deploy story is dead simple (push to GitHub, Shopify auto-deploys in 30 seconds). The hosting is included. The CDN is included. The CDN is global. The infrastructure is a problem somebody else solved. Use it.
The Right Tool, Not the Newest Tool
The mature engineering decision in 2026 is not "what is the newest framework." It is "what tradeoff are we making, and is this the right one for this product." We see teams burn six months and significant budget building headless Shopify implementations to ship the same e-commerce experience they could have shipped in two months on classic Liquid.
The instinct to pick the trendy stack is real, and on portfolio sites, in agency pitches, in conference talks, the headless choice signals sophistication. The actual sophistication is picking the right tool for the merchant's actual needs. A B2B store with a contractor approval workflow does not benefit from React. A merchant who needs to update prices weekly does not benefit from a deploy pipeline. Liquid + vanilla JS + Shopify 2.0 is, for many storefronts in 2026, the boring correct answer. Boring correct is what ships, what stays maintainable, and what the merchant can actually use without a developer in their pocket.
Ready to put this into action?
We build the digital infrastructure that turns strategy into revenue. Let's talk about what DRTYLABS can do for your business.
Get in Touch