Headless Commerce: When It's Worth It and When It's a Trap
The Headless Hype
Every agency and SaaS vendor is pushing headless commerce. "Decouple your frontend! Unlimited flexibility! Blazing-fast page loads!" And they're not wrong — for the 15% of brands that actually need it. For the other 85%, headless is a six-figure detour that slows you down.
What Headless Actually Means
Traditional (monolithic) commerce:
Shopify/BigCommerce handles EVERYTHING:
├── Product catalog
├── Cart & checkout
├── Frontend (theme/templates)
├── Payments
├── Shipping
└── Admin panel
Pros: One system, fast to launch, lower maintenance
Cons: Limited customization, tied to platform's frontend
Headless commerce:
Backend (commerce engine): Frontend (custom):
├── Product catalog ├── Next.js / Remix / custom
├── Cart & checkout API ├── Full design control
├── Payments ├── Any framework
├── Shipping ├── Custom UX flows
└── Admin panel └── Multiple storefronts
Pros: Total frontend control, better performance possible
Cons: 3-5x development cost, ongoing maintenance burden
The Decision Framework
Go Headless If (ALL Must Be True)
✅ Revenue > $10M/year (you can afford the ongoing cost)
✅ Your conversion is limited by frontend customization
✅ You need multiple storefronts (web, app, kiosk, B2B portal)
✅ You have 2+ dedicated frontend engineers (or budget for them)
✅ You've outgrown your platform's checkout customization
✅ You have specific UX requirements your platform can't handle
Examples that justify headless:
- B2B + B2C from the same catalog (different UX, same backend)
- Custom product configurator (3D preview, custom builder)
- Subscription + one-time purchase hybrid with complex rules
- Multi-brand/multi-region with shared inventory
- Native app + web with shared commerce logic
Stay Monolithic If (ANY Is True)
❌ Revenue < $10M/year (invest in marketing, not architecture)
❌ Your current platform handles 90%+ of your needs
❌ You don't have dedicated frontend engineering resources
❌ Your main bottleneck is marketing/product, not technology
❌ You're considering headless for "speed" (CDN + image optimization gets you 90% there)
❌ You're considering headless because an agency recommended it
The uncomfortable truth:
Shopify + a well-optimized theme + proper image/CDN setup
will outperform most headless implementations in both
speed and conversion rate — at 1/5 the cost.
The Real Cost of Headless
Initial build:
Monolithic (Shopify theme): $15K-50K, 4-8 weeks
Headless (custom frontend): $80K-250K, 12-24 weeks
Ongoing maintenance:
Monolithic: $2K-5K/month (theme updates, app management)
Headless: $8K-20K/month (frontend engineers, API maintenance,
hosting, CDN, monitoring, security updates)
Cost to add a new feature:
Monolithic: Install an app ($50-200/month) — 1 day
Headless: Build custom feature — 2-6 weeks
5-year TCO comparison:
Monolithic: $150K-350K
Headless: $600K-1.5M
The question: Does headless generate $450K-1.15M MORE
in revenue over 5 years to justify the investment?
The Middle Ground: Hybrid Headless
For most growth-stage brands, the answer isn't fully headless or fully monolithic — it's hybrid.
Hybrid approach (best of both worlds):
Keep on Shopify:
✓ Product management
✓ Inventory
✓ Checkout (Shopify Checkout is best-in-class)
✓ Payments
✓ Order management
✓ Admin panel
Go custom:
✓ Product pages (custom layouts, 3D viewers, configurators)
✓ Landing pages (marketing campaigns, A/B tests)
✓ Blog/content (headless CMS like Sanity or Contentful)
✓ Account portal (custom dashboard, subscription management)
Use Shopify Storefront API for:
✓ Product data
✓ Cart management
✓ Customer auth
✓ Checkout redirect (to Shopify's hosted checkout)
Implementation Pattern
// Hybrid: Custom frontend pages that use Shopify's backend
// Product page with custom layout but Shopify data
async function getProduct(handle: string) {
const response = await shopifyStorefrontAPI({
query: `{
product(handle: "${handle}") {
id title description
variants(first: 50) {
edges { node { id title price { amount } availableForSale } }
}
images(first: 10) {
edges { node { url altText width height } }
}
}
}`,
});
return response.data.product;
}
// Cart stays in Shopify
async function addToCart(cartId: string, variantId: string) {
return shopifyStorefrontAPI({
query: `mutation {
cartLinesAdd(cartId: "${cartId}", lines: [
{ merchandiseId: "${variantId}", quantity: 1 }
]) {
cart { id totalQuantity cost { totalAmount { amount } } }
}
}`,
});
}
// Checkout: Redirect to Shopify's hosted checkout
// Don't rebuild checkout. Shopify's converts better than yours will.
function redirectToCheckout(checkoutUrl: string) {
window.location.href = checkoutUrl;
}Performance Without Headless
Before going headless for "speed," try these first:
Optimization Impact Cost
CDN for all static assets -40% load time $20/month
Image optimization (WebP, lazy) -30% load time $0-50/month
Remove unused apps/scripts -20% load time Free
Critical CSS inlining -15% load time One-time dev
Prefetch/preload key resources -10% load time One-time dev
Combined impact: 2-3x faster page loads
Cost: < $100/month + 1-2 weeks of dev time
vs Headless for performance:
Impact: 2-4x faster (marginally better)
Cost: $100K+ initial + $10K/month ongoing
The Migration Decision
If you decide headless is right, the migration path:
Phase 1 (Month 1-2): Hybrid
- Keep existing storefront running
- Build custom pages for highest-impact areas
- Use Storefront API for data
Phase 2 (Month 3-4): Expand
- Migrate more pages to custom frontend
- Keep checkout on Shopify
- Verify conversion rates match or exceed baseline
Phase 3 (Month 5-6): Full migration (if warranted)
- Migrate remaining pages
- Set up proper monitoring and alerting
- Document everything for future maintenance
Never do a big-bang migration. Always run both systems
in parallel and compare conversion rates at each step.
The Bottom Line
Headless commerce is a powerful architecture — for brands that have outgrown their platform's limitations and have the engineering resources to maintain a custom frontend. For everyone else, it's a premature optimization that costs 5x more and ships 3x slower.
Start with the hybrid approach. Customize where it matters. Keep Shopify's checkout. Measure the impact. Only go fully headless when the data proves you need to — not because an agency told you it's the future.