In our Shopify Architecture Guide, we show you the fundamentals. Today we address a strategic question that more and more online retailers are asking: Should your Shopify store be "headless"? And if so, which framework fits your project?
At smplx., we've been advising Shopify partners and merchants on this decision since 2020. We've worked with Hydrogen, Remix, and Next.js -- and we know there's no universal answer. Let's find the right architecture for your project together.
What Is Headless Commerce, Actually?
"Headless" means that the presentation layer (your online store) is decoupled from the commerce engine (Shopify). Instead of writing Liquid templates in your Shopify admin, you use the Shopify Storefront API -- and build your frontend separately.
Traditional Shopify Store:
Shopify (Theme + Liquid) > Customer
Headless Shopify:
Shopify (Admin + API) > Your Frontend (Framework) > Customer
That sounds abstract, but the advantage is concrete: You have complete control over UX, performance, and technology stack. You're not bound to Shopify's theme system.
When Does Headless Make Sense?
- Ultra-performance is critical. When every millisecond counts (like with J.Clay, +107% revenue after performance optimizations)
- Complex integration requirements. When you need to connect many external systems
- Omnichannel strategy. When you want to use the same catalog on web, mobile app, and other channels
- Brand control. When you need absolute design freedom
- Internationalization. When you have complex multilingual scenarios (like FlexLoqq with B2B + bilingual)
When Should You Not Go Headless?
- Small to mid-size stores without special performance requirements
- Limited engineering resources. You need developers who understand modern JavaScript frameworks
- Frequent content changes without a technical team. Shopify's admin is simple -- your frontend isn't
- Budget constraints. Hosting, development, monitoring -- everything gets more expensive
The Three Main Options in Detail
1. Hydrogen: Shopify's Native Solution
What is Hydrogen?
Hydrogen is Shopify's own framework, based on React and Remix. It's purpose-built for Shopify and comes with a lot of context -- Hydrogen "knows" it's working with Shopify.
Pros:
- Official support from Shopify
- Best practices for Shopify Storefront API are built-in
- Hydrogen DevTools for debugging
- Direct access to Shopify-specific features
- Community and ecosystem from Shopify agencies
Cons:
- Less flexible than Remix or Next.js
- Smaller community outside the Shopify world
- Performance depends heavily on your implementation
- Hosting must fit Shopify's vision (Oxygen recommended)
When to choose? When you want to work purely Shopify and value Shopify's ecosystem. Solid for standard requirements, but not flexible enough for complex integration scenarios.
Performance baseline: ~1.5-2.5s LCP (with optimal setup)
2. Remix: Maximum Flexibility
What is Remix?
Remix is a full-stack framework from the creators of React Router. It's framework-agnostic and gives you maximum control. You can build practically anything with it -- not just stores.
Pros:
- Ultra-flexible architecture
- Excellent DX (Developer Experience)
- Built-in form handling and data loading (major advantages for checkout)
- Server-side rendering out-of-the-box
- Perfect for complex integrations
Cons:
- No Shopify-specific shortcuts
- Greater responsibility in architecture
- Less documentation on Shopify patterns
- Learning curve for developers who don't know Remix
When to choose? When you need flexibility and your team has Remix experience. Perfect for complex B2B scenarios (like FlexLoqq).
Performance baseline: ~1.2-2.0s LCP (depends heavily on implementation)
3. Next.js with Storefront API: The Classic
What is Next.js?
Next.js is the most-used React framework on the web. With the Shopify Storefront API, you can use Next.js as a Shopify frontend.
Pros:
- Huge community and ecosystem
- Countless integrations and libraries
- App Router offers Server Components (performance!)
- Vercel hosting optimized for Next.js
- Largest talent pool for recruitment
- Perfect for "modern web development"
Cons:
- Shopify-specific patterns must be implemented yourself
- GraphQL client setup requires work
- More boilerplate than Hydrogen
- Too much flexibility can lead to worse decisions
When to choose? When your team has Next.js experience or you want long-term flexibility. Best-of-both-worlds solution.
Performance baseline: ~1.0-1.8s LCP (with optimal image strategies)
Direct Comparison: The Numbers
| Aspect | Hydrogen | Remix | Next.js |
|---|---|---|---|
| Learning Curve | Medium (React + Shopify) | Medium (Remix new?) | Low (React!) |
| Flexibility | Medium | High | High |
| Shopify Integration | Easy | Easy | Easy |
| Community Size | Small | Medium | Very Large |
| Performance | Good | Very Good | Very Good |
| Hosting Options | Limited (Oxygen) | Flexible | Flexible (Vercel!) |
| Learning Resources | Medium | Low | Very High |
| Costs (Hosting) | $$$$ | $-$$$ | $-$$ (Vercel) |
Real-World Scenarios from smplx. Projects
J.Clay: Performance Above All
J.Clay needed an ultra-fast store architecture. After 3 iterations with Next.js, we achieved:
- 107% revenue increase through improved performance
- LCP under 1.2 seconds
- Critical Rendering Path optimized with Server Components
- Image strategy with WebP and Lazy Loading
- Decision: Next.js with Image Optimization (was the right call)
Lesson: Next.js' Image Component was the game-changer.
FlexLoqq: B2B Meets Multilingualism
FlexLoqq needed:
- Complex B2B pricing logic (not in standard Shopify)
- Bilingual interface
- Custom checkout flow
- Performance-critical for enterprise customers
Solution: Remix with custom middleware for pricing logic Reason: Remix's server-action pattern was perfect for complex pricing handling.
GraphQL and Storefront API
Regardless of which framework you choose -- the Storefront API remains the same. But how you use it differs:
Hydrogen:
import { useShopQuery } from '@shopify/hydrogen';
export default function Products() {
const { data } = useShopQuery({
query: PRODUCTS_QUERY,
});
return <>{/* ... */}</>;
}
Next.js / Remix:
// You write your own GraphQL clients
const response = await fetch(SHOPIFY_STOREFRONT_ENDPOINT, {
method: 'POST',
headers: { 'X-Shopify-Storefront-Access-Token': token },
body: JSON.stringify({ query: PRODUCTS_QUERY }),
});
The Storefront API is identical across all three -- the DX differs.
Our Recommendation for 2026
We at smplx. recommend:
- Small to mid-size stores: Stay with Liquid/Traditional Theme
- Performance-critical + Shopify-first: Hydrogen
- Complex integration + flexible team: Remix
- Team has Next.js skills + long-term vision: Next.js
The best choice is: The one your team can implement most confidently on a technical level.
We have all three in production. The performance differences are minimal when properly implemented. The difference lies in team competence and long-term maintenance.
Also Important: If You Go Headless
- Invest in a GraphQL client -- don't write everything yourself
- Implement robust caching (important for Storefront API rate limits)
- Use ISR/Revalidation (your data needs to stay fresh)
- A staging environment is a must -- not optional
- Monitoring and error tracking are critical
Deployment and Hosting Strategies
Your choice of framework also affects how and where you deploy.
Hydrogen with Oxygen (Shopify Hosting)
// shopify.app.toml
[build]
template = "hydrogen"
[build.dependencies]
node = "18.0.0"
[api.webhook]
address = "https://your-domain/webhooks"
Shopify's Oxygen is specifically optimized for Hydrogen. Zero-config deployment, automatic scaling, integrated analytics. The trade-off: Less control, higher costs.
Next.js with Vercel
// next.config.js
import { shopifyDataHeader } from '@shopify/hydrogen-react';
export default {
headers() {
return [{
source: '/api/:path*',
headers: [
{
key: shopifyDataHeader,
value: 'true'
}
]
}];
},
images: {
remotePatterns: [
{
protocol: 'https',
hostname: '*.shopifycdn.com'
}
]
}
};
Vercel is optimized for Next.js -- Edge Functions, ISR, Automatic Build Optimizations. You pay per request, not per server.
Remix with Cloudflare, AWS, or Self-Hosted
Remix runs everywhere. That gives you maximum freedom -- and maximum responsibility:
// remix.config.js
export default {
future: {
v3_fetcherPersist: true,
v3_relativeSplatPath: true,
},
serverModuleFormat: 'esm',
};
Cloudflare Workers are cheap (0.15/million requests), AWS is flexible, self-hosted gives you full control.
The Hidden Complexity: Headless Costs
Headless sounds like "more control, more performance." The reality:
Development costs:
- Theme development: $20-50k
- Headless development: $50-150k (3x more expensive!)
Infrastructure costs:
- Traditional theme: 0-100/month (Shopify handles everything)
- Headless: 300-1.5k/month (hosting, CDN, monitoring)
Maintenance costs:
- Theme: Shopify updates, you only maintain theme code
- Headless: You must maintain frontend + backend + deployment pipeline
When is it worth it?
- When the +107% revenue (like J.Clay) offsets your additional costs
- When you have 10,000+ monthly visitors (performance matters)
- When you need omnichannel (same code for web + app)
Otherwise: Stay with a well-optimized traditional theme.
About the Author
Claudio Gerlich is Technical Architect at smplx. and has specialized in Shopify technology since 2020. With smplx., we've advised and implemented over 50+ stores in modern architectures -- from traditional to headless. We combine technical depth with practical business requirements.
smplx. is a Shopify Technical Partner (since 2020) based in Munsterland, NRW.