// SHOPIFY STOREFRONT ARCHITECTURE
Shopify Plus vs Headless Next.js
Most Shopify Plus brands should stay on a Liquid theme: Shopify's own docs say a headless storefront costs more to build and run. Choose Next.js on the Storefront API when you need a frontend themes cannot support, a CMS-led site, or one frontend for several channels. Hydrogen now plugs into Next.js on Vercel, while Oxygen hosts Hydrogen's React Router template.
Start with the theme. A lean Online Store 2.0 theme keeps the theme editor, works with every app that ships a theme app extension, and launches in 3 to 5 weeks with FactoryJet. A headless Next.js storefront takes 8 to 14 weeks and needs a developer after launch. Shopify lists the cases where headless is worth that extra effort:
- A storefront experience that themes and apps cannot support, or cannot support easily.
- A web frontend stack that does not use Liquid.
- Shopify commerce added to infrastructure you already run.
- Selling on several channels Shopify does not support out of the box.
- A CMS that drives content alongside your products.
Source: Shopify, About headless commerce, checked 22 Oct 2026. For the platform-neutral version of this question, read headless vs monolithic commerce.
Three Numbers Shopify and Google Publish
These apply whichever frontend you pick. Checked 22 Oct 2026 on the official pages linked below.
Shopify Plus on a 3-year term
Or $2,500 a month on a 1-year term. You pay it for a Liquid theme, a Next.js storefront or Hydrogen alike, because the backend and checkout stay on Shopify.
Source: Shopify Plus pricing →Tokenless query complexity cap
The Storefront API lets a Next.js app read products, collections, search and the cart without a token, up to a query complexity of 1,000. Product tags, metafields, menus and customers need a token.
Source: Shopify Storefront API reference →Google's good LCP threshold
Largest Contentful Paint of 2.5 seconds or less, measured at the 75th percentile of real visits. A well-built theme and a well-built Next.js store can both pass it.
Source: web.dev, Largest Contentful Paint →Five-Dimensional Architectural Evaluation
Liquid theme vs Next.js on the Storefront API vs Hydrogen on Oxygen, across the five things that decide most projects.
| Evaluation Criteria | Shopify Plus Liquid (OS 2.0) | Next.js + Storefront API | Hydrogen on Oxygen |
|---|---|---|---|
| 1. Speed | Can pass 2.5 s LCP once app scripts are trimmed | Prerendered pages with ISR; less JavaScript when built well | Server-rendered on Shopify's Worker hosting |
| 2. Frontend Freedom | Sections, blocks and app blocks | Any React UI, 3D, configurators | Any React UI; Hydrogen components for cart and variants |
| 3. Build Time With FactoryJet | 3 to 5 weeks (custom theme) | 8 to 14 weeks | 8 to 14 weeks |
| 4. Marketing Editing | Theme editor, no developer | Headless CMS blocks built by developers | Headless CMS or Shopify metaobjects |
| 5. App Store Compatibility | Theme app extensions work as installed | Only apps with an API or SDK | Only apps with an API or SDK |
Spec Sheet: What Shopify, Vercel and Google Publish
Vendor facts only. Every row links to the official page, checked 22 Oct 2026.
| Fact | Liquid theme | Next.js + Storefront API | Hydrogen + Oxygen | Source (checked 22 Oct 2026) |
|---|---|---|---|---|
| Shopify Plus list price | $2,300/mo (3-year term) or $2,500/mo (1-year) | Same plan fee; frontend hosting billed separately | Same plan fee | Shopify Plus pricing |
| Third-party payment gateway fee | 0.20% per transaction | 0.20% per transaction | 0.20% per transaction | Shopify Plus pricing |
| Stores included in the Plus fee | Up to 10 stores on the contract (main + 9 expansion) at no added cost | Same | Same | Shopify Help: expansion stores |
| How pages are built | Liquid templates; JSON templates hold sections merchants reorder in the theme editor | React components in Next.js; data from the Storefront API | Your framework renders; Hydrogen handles cart, variants, filters, analytics | Theme architecture, Hydrogen docs |
| Sales channel for API keys | Online Store (no API keys needed) | Headless channel | Hydrogen channel (or Headless if hosted off Oxygen) | About headless commerce |
| Where the frontend runs | Shopify | Vercel, Node, Cloudflare Workers or Deno | Oxygen: a Web Worker, not a Node server | Hydrogen deploy guide, Deploy to Oxygen |
| Storefront API limits | Not applicable | Buyer traffic not rate-limited; tokenless query complexity cap 1,000; up to 100 active tokens per app per shop | Same API and limits | Storefront API, API limits |
| Product URL rule | /products/:handle by default | Keep /products/:handle or 3XX redirect to the new path | Checks store URL redirects before a 404 | About headless commerce, Hydrogen docs |
| Preview and rollback | Unpublished theme previews | Depends on host (Vercel preview deploys) | Unique preview URL per deployment; GitHub deploys; rollbacks | Oxygen deployments |
| Framework | Liquid, run by Shopify | Next.js, MIT licence | Hydrogen (MIT) inside Next.js, React Router, Nuxt, Astro or SvelteKit | Next.js on GitHub, Hydrogen on GitHub |
| Frontend hosting fee from Shopify | Included in the plan | None from Shopify; you pay your own host | Oxygen: no extra charge on paid Shopify plans, including Plus | Oxygen plans, Hydrogen 2026-10 release |
| Checkout customisation | Advanced checkout customisation is Plus-only | Same Shopify checkout and rules | Same Shopify checkout and rules | Checkout extensibility |
| URL redirect capacity | Up to 20,000,000 redirects on Plus (100,000 on other plans) | Your host handles redirects; Shopify redirects still usable via API | Hydrogen reads the store URL redirects | Shopify Help: URL redirects, Hydrogen docs |
| Speed target for any option | Good LCP is 2.5 s or less at the 75th percentile | Same target | Same target | web.dev LCP |
When to Choose Native Shopify Plus Liquid
Online Store 2.0 changed what a theme can do. JSON templates are wrappers for sections, section groups let merchants rearrange the header and footer, and theme app extensions let apps add blocks without editing code. A lean theme built this way gives you most of what brands go headless for, without a second codebase. Our Shopify Plus and Shopify development teams build these themes.
Best for:
- DTC and wholesale stores whose pages fit sections and blocks.
- Marketing teams that launch landing pages weekly in the theme editor.
- Stores that depend on apps which only ship theme app extensions.
- Teams without a developer to own a separate frontend after launch.
Watch out for:
- Every installed app can add scripts; audit them before blaming Liquid for slow pages.
- Deep interactive features (3D, complex configurators) become separate JavaScript apps inside a section.
- One storefront per theme; content-heavy sites can outgrow the page and blog tools.
When to Choose Composable Headless Next.js
A headless store splits the frontend from Shopify. Next.js renders the pages; the Storefront API serves products, collections, search and the cart; the Customer Account API handles sign-in and orders; Shopify checkout still takes the payment. You host the frontend yourself, usually on Vercel, and connect it through Shopify's Headless channel. This is the work our headless Shopify development service covers.
Best for:
- Product configurators, 3D viewers and custom bundle builders.
- Content-led brands running Sanity, Contentful or another CMS next to the catalog.
- One codebase serving several regional storefronts or a web app plus a mobile app.
- Teams that already run Next.js and want Shopify inside their existing stack.
Watch out for:
- Theme app extensions stop working; each app needs an API path.
- Send the buyer IP header on server requests, or checkout and bot protection suffer.
- Keep /products/:handle URLs, or redirect them, to protect search rankings.
- Budget for a developer after launch, as Shopify's own docs advise.
Where Hydrogen and Oxygen Fit in 2026
Hydrogen used to be a separate framework you picked instead of Next.js. Since version 2026-10 it is a toolkit that sits inside your framework and handles the Shopify parts: cart, variant selection, collection filters, analytics, and the /api/cart and /checkout routes. Its forms are native HTML, so shoppers can still add to cart before JavaScript loads. Oxygen is Shopify's hosting for it.
- Next.js + Hydrogen on Vercel: Shopify points Next.js projects to Vercel Shop, a Next.js template. Good when your team already knows Next.js.
- React Router + Hydrogen on Oxygen: Shopify hosts it, with environments, preview deployments and variables managed in the Shopify admin.
- Next.js on the raw Storefront API: no Hydrogen package; you write the cart and variant logic yourself. Fine for small catalogs or unusual stacks.
How a Liquid to Next.js Move Runs
The order matters more than the framework. This is the sequence we follow on a Shopify migration; the backend stays put, so only the storefront changes.
- Pull 28 days of real-user speed data and the full app list, and mark which apps have a headless API.
- Install the Headless channel (or Hydrogen channel for Oxygen) and create a storefront with its own tokens.
- Export every live URL and build a one-to-one 301 map, single hop, keeping /products/:handle paths.
- Build product, collection, cart and search pages first; send the buyer IP header from day one.
- Wire Shopify product and inventory webhooks to on-demand ISR revalidation.
- Set up the CMS block library with the marketing team before page design is signed off.
- Show a working demo on your own catalog, then run the old theme and the new frontend side by side.
- Switch the domain, submit the sitemap, and watch 404s and Search Console for two weeks.
Want a rough number for your own move first? Try the replatforming cost calculator, or read our overview of headless commerce.
FREQUENTLY ASKED QUESTIONS
Questions commerce leaders ask about Shopify and Next.js
Speed, Storefront API limits, Hydrogen and Oxygen, apps, checkout, SEO and cost.
Topics
Can’t find your answer?
Talk to the founderSpeed & Storefront API
Is a Next.js storefront faster than a Shopify Liquid theme?
Not automatically. Both can meet Google's 2.5 second bar for a good Largest Contentful Paint (the time until the main image or headline shows). On most slow Liquid stores the cause is app scripts and oversized images, not Liquid itself. Next.js can prerender pages and ship less JavaScript, but a careless headless build can be slower than a lean theme. Check your store's real-user data before deciding.
How does a Next.js store keep Shopify prices and stock current without full rebuilds?
With Incremental Static Regeneration (ISR). The Next.js docs say ISR updates static content without rebuilding the entire site and serves prerendered pages for most requests. On a Shopify build we connect product and inventory webhooks to on-demand revalidation, so only the changed product or collection page is refreshed. Cart and checkout always read live data from the Storefront API.
Will Storefront API rate limits slow a headless store during a big sale?
Shopify's API limits page says buyer traffic to the Storefront API is not rate-limited; the limits target bots, crawlers and checkout abuse. The catch is identification. Server-side requests must send the Shopify-Storefront-Buyer-IP header, or Shopify cannot tell buyers apart and may throttle requests, weaken bot protection and break signed-in checkout. Tokenless requests also carry a query complexity cap of 1,000.
How does a headless Next.js store avoid layout shift on mobile?
Product data, images and reviews are fetched on the server and sent as finished HTML, with fixed image sizes. Elements do not jump when a third-party script loads later, which is the usual cause of layout shift on Liquid stores running several apps. A Liquid theme can reach the same result if app blocks are trimmed and image dimensions are set in the theme code.
Cost & Team Effort
Does headless Shopify cost more than a Liquid theme?
Yes, and Shopify says so itself: its headless docs state that a headless storefront costs more to build and run than a theme, and that the merchant needs developers to maintain it after launch. FactoryJet builds a custom theme in 3 to 5 weeks and a headless storefront in 8 to 14 weeks. We quote a fixed price in writing after a short scoping call.
Do I still pay for Shopify Plus if my storefront runs on Next.js?
Yes. The catalog, cart, checkout and customer accounts still come from Shopify, so the plan fee stays. On 22 Oct 2026 Shopify listed Plus at $2,300 a month on a 3-year term or $2,500 on a 1-year term, with a variable platform fee for more complex businesses. If you use a third-party payment gateway, Shopify adds 0.20% per transaction.
What extra subscriptions does a headless Shopify build add?
Usually two. A headless CMS (content management system) such as Sanity, Contentful or Builder.io, so marketers can edit pages without a developer, and frontend hosting such as Vercel or Cloudflare. Hydrogen storefronts can use Oxygen instead, which Shopify offers at no extra charge on paid plans. Check each vendor pricing page for your traffic level before you sign, because these sit outside your Shopify bill.
How does going headless change day-to-day editing for marketers?
On a Liquid theme, marketers use the Shopify theme editor: JSON templates hold sections that can be added, removed and reordered without code. On a Next.js storefront, that editor no longer drives the page. Marketers work in a headless CMS instead, using only the blocks your developers built. New layouts need a developer, so plan the block library before launch.
Can a Next.js storefront replace paid Shopify apps?
Some of them. Product filters, mega menus, size charts and simple bundle pickers can become plain components in the Next.js code. Apps that hold data or run business logic, such as reviews, loyalty, subscriptions and search, stay in place, and the storefront calls their APIs. Before a migration, list every app and mark whether it has a headless API.
Shopify Apps, Checkout & SEO
How does checkout work on a headless Next.js Shopify store?
Checkout stays on Shopify. The Next.js app builds the cart through the Storefront API, then sends the shopper to the cart's Shopify checkout URL, where Shop Pay and your payment settings apply. Hydrogen's request handlers answer the /checkout and /api/cart routes for you. Shopify says advanced checkout customisation is available only on Plus, and it is done with Shopify's checkout tools, not in Next.js.
Do Shopify App Store apps work on a Next.js storefront?
Apps that insert widgets through theme app extensions only work on Liquid themes. On a Next.js storefront each app must offer an API or JavaScript SDK, and a developer adds it as a component. Reviews, loyalty and subscription apps often support headless; many small widget apps do not. Ask each vendor before you commit to the rebuild.
How do customer logins work on a headless Shopify store?
Through Shopify's Customer Account API. It lets customers sign in and serves their orders, addresses and profile to your Next.js pages. The Headless or Hydrogen sales channel gives you a client ID, plus a client secret for code that runs on a server. Hydrogen ships a ready client for it in its customer-account entry point.
Is a 3D product configurator easier in Next.js than in Liquid?
Yes. A configurator is an interactive app: it holds state, renders a 3D canvas with a library such as Three.js, and recalculates price as options change. React components in Next.js handle that natively. In Liquid you would bolt a separate JavaScript app onto a theme section. If the configurator is the only custom part, you can embed it in a Liquid theme and skip full headless.
What happens to my SEO URLs if I move from Liquid to Next.js?
Keep the same handles and the risk is small. Shopify documents /products/:handle as the standard product URL, and asks headless stores that change it to send a server-side 3XX redirect from that path. We build a one-to-one 301 map from every old URL to its new one, single hop. Plus stores can hold up to 20 million Shopify redirects. Hydrogen also checks the store URL redirects before showing a 404.
Hydrogen, Oxygen & Vercel
What is Shopify Hydrogen in 2026?
Hydrogen is Shopify's headless toolkit. Version 2026-10 handles the Shopify-specific parts that are easy to get wrong: the cart, variant selection, collection filtering, analytics, and the routes that apps and checkout depend on. It plugs into frameworks that run server code, including Next.js, React Router, Nuxt, Astro and SvelteKit, and leaves routing and UI to them.
Hydrogen vs Next.js: do I have to choose one?
Not any more. Up to Hydrogen 2026-04, Hydrogen was its own React Router based framework, now documented as Legacy Hydrogen. Shopify's release note says Hydrogen 2026-10 is now a library you add to the framework you already use, so it installs into a Next.js project, and Shopify points to Vercel Shop, a Next.js template, as a starting point. The real choices now are where to host and whether to use Hydrogen helpers or call the Storefront API directly.
What is Oxygen, and can it host a Next.js storefront?
Oxygen is Shopify's hosting for Hydrogen storefronts. Shopify's docs say it runs your storefront as a Web Worker, not a Node server, and expects a module Worker, one server bundle and a folder of client assets. The React Router starter deploys there, and Oxygen costs nothing extra on paid Shopify plans. For Next.js, Shopify's deploy guide points to Vercel, or to Node, Cloudflare Workers or Deno.
What do Oxygen deployments give a development team?
Every Oxygen deployment gets its own preview URL, so changes can be checked before going live. Shopify supports continuous deployment from GitHub, manual deploys from the Hydrogen CLI, and rollbacks that point the environment back to an earlier deployment. On the Basic plan or above you can share preview links with people who are not logged in, and Oxygen blocks search engines from indexing them.
Is Next.js just React?
Next.js is a framework built on React. Its GitHub project calls it "The React Framework" and it is MIT-licensed, so it is free to use. React gives you components. Next.js adds routing, server rendering, static generation with ISR, image handling and API routes, which are the parts a Shopify storefront needs to load fast and rank in search.
Strategic Decision Framework
When should a brand stay on a Shopify Plus Liquid theme?
Stay on Liquid when your pages fit sections and blocks, your marketers edit the store daily in the theme editor, and you rely on apps that only ship theme app extensions. Also stay if you have no developer to own a separate frontend after launch. Shopify's own guidance is to go headless only when themes and apps cannot deliver what you need.
When is a headless Next.js storefront justified?
Shopify's docs list the cases: a storefront experience themes cannot support easily, a frontend stack that does not use Liquid, Shopify commerce added to infrastructure you already run, selling on channels Shopify does not support out of the box, and a CMS that drives content next to products. If none applies to you, a faster theme will usually pay back sooner.
What is the middle-ground option between Liquid and full headless?
A lean Online Store 2.0 theme with the app bloat removed, images sized properly, and small interactive pieces (a configurator, a quiz) built as embedded React islands. Marketers keep the theme editor and apps keep working. We recommend this first for most Plus stores, and move to Next.js only when a named requirement cannot be met inside the theme.
Can we move from Liquid to headless in stages?
Yes. A common first step is a Next.js content hub or campaign site on its own subdomain, reading products from the Storefront API while the Liquid theme keeps running the main store. Shopify's Headless channel lets you create several storefronts, each with its own API tokens, so the pilot never touches theme code. Move product and collection pages once the pilot proves its value.
How do we book a Shopify architecture review with FactoryJet?
Book a 30-minute call with founder Bhavesh Barot. We look at your catalog, markets, app list and current speed data, then tell you whether to tune the theme, add a headless section, or rebuild in Next.js. FactoryJet is a registered Shopify Partner. You see a working demo on your own data before you sign, and you own the code.
// OBJECTIVE COMMERCE ARCHITECTURE EVALUATION
Schedule a 30-Minute Architecture Scoping Call
Speak directly with founder Bhavesh Barot. We review your catalog, markets, app stack and speed data, then recommend a tuned Liquid theme, Next.js on the Storefront API, or Hydrogen. FactoryJet quotes a fixed price in writing after the call.