Guides · December 19, 2022
Best Free & Open-Source Next.js E-Commerce Starters (Honest Review)
The best free, open-source Next.js e-commerce starters right now are Next.js Commerce, the Medusa Next.js storefront, the Saleor storefront example, and BigCommerce's Catalyst — each trading off backend flexibility, checkout ownership, and setup time differently.
By Polo Themes
If you want a free, open-source Next.js e-commerce starter today, the four worth seriously evaluating are Next.js Commerce (Vercel's provider-agnostic reference storefront), the Medusa Next.js starter (paired with the open-source Medusa backend), the Saleor storefront example (GraphQL-first, headless), and BigCommerce's Catalyst (a fully-featured Next.js storefront maintained by a commerce platform vendor). None of them is a drop-in, done-in-an-afternoon theme the way a hosted Shopify theme is — every one of them assumes you're comfortable wiring a backend, environment variables, and a checkout flow yourself. This guide walks through what each actually gives you, where each falls short, and how to pick without wasting a week on the wrong one.
A quick framing note before the list: "Next.js e-commerce starter" gets used loosely online to include projects that aren't actually Next.js. Shopify's own headless toolkit, Hydrogen, is built on React Router, not Next.js — a common source of confusion when people search for "Shopify Next.js theme." If your priority is staying inside the Next.js ecosystem specifically (App Router, React Server Components, Vercel's deployment model), that rules Hydrogen out regardless of how good it is on its own terms.
What "Free and Open-Source" Actually Means Here
Worth being precise, because the term gets stretched. A genuinely open-source Next.js commerce starter means the storefront code is MIT/permissive-licensed and you can read, fork, and modify every line of it. That's different from a "free plan" on a proprietary SaaS storefront builder, which is free to start but closed-source and rented, not owned. All four options below have their storefront code openly licensed. Where they differ sharply is the backend: Medusa and Saleor ship an open-source backend you can self-host, while Next.js Commerce and Catalyst are storefront layers designed to sit in front of a commerce platform (Shopify, BigCommerce, Saleor Cloud, and others) that you don't necessarily self-host.
How to Evaluate a Next.js Commerce Starter
Before comparing specific projects, use a short checklist. Most of the disappointment developers report with these starters comes from skipping this step and assuming "it's on GitHub with a lot of stars" is enough signal.
- Maintenance cadence: check the commit history and open issues, not just star count. A starter with 20k stars and no merged PR in eight months is a snapshot, not a living project.
- Backend coupling: does the starter assume one specific backend (Shopify, a specific headless CMS), or is the data layer abstracted enough to swap providers without a rewrite?
- Checkout ownership: does checkout redirect to a hosted page you don't control, or is it a composable flow you can fully brand and extend? This is the single biggest gap between "demo-quality" and "production-quality" starters.
- Rendering strategy fit: does it default to static generation with revalidation (ISR) for catalog pages, or server-render everything on every request? Catalog-heavy stores need the former to stay fast and affordable at scale.
- TypeScript coverage and test presence: a starter with typed data-fetching layers and at least some test coverage is meaningfully cheaper to extend than one with loose, untyped JS files and no tests.
- Auth, cart persistence, and i18n: these are the three features every real store eventually needs and that most "starter" repos leave as an exercise for the reader. Check whether they exist at all before assuming you'll bolt them on quickly.
Next.js Commerce (Vercel)
Next.js Commerce is Vercel's own reference implementation, built to showcase the App Router, React Server Components, and Vercel's deployment and caching story using a real commerce use case. It ships with a working Shopify integration out of the box and has historically supported other providers through swappable data-layer adapters. The design is intentionally minimal — a product grid, product page, cart drawer, and checkout handoff — which makes it an excellent reference architecture for how to structure data fetching, caching, and revalidation in modern Next.js, but a thin starting point for an actual storefront's visual design or merchandising features.
Because checkout typically hands off to the underlying platform's hosted checkout (Shopify's, for example), you inherit that platform's checkout UX rather than owning it end to end. That's a reasonable trade for teams that want Next.js on the front end but are fine with a platform-hosted checkout. It's a poor fit if full checkout customization is a requirement from day one.
Medusa's Next.js Starter
Medusa takes a different shape: it's an open-source, self-hostable commerce backend (product catalog, cart, order, and promotion logic, all in a Node.js/TypeScript service) paired with an official Next.js storefront starter that talks to it over a REST/JS SDK. This combination is the closest thing on this list to "own the whole stack, free." You run the Medusa backend yourself (or use their hosted admin), and the Next.js starter gives you a real, extensible cart-and-checkout flow rather than a redirect to someone else's hosted page.
The trade-off is operational: you're now responsible for running and scaling a backend service, its database, and its admin, in addition to the storefront. For a solo developer prototyping quickly, that's more moving parts than a platform-hosted alternative. For a team that wants full control over commerce logic — custom pricing rules, non-standard fulfillment, B2B workflows — it's usually worth the extra ops surface, and the community around Medusa has grown quickly enough that plugins and guides exist for most common gaps.
Saleor Storefront (Next.js Example)
Saleor is a GraphQL-first, open-source commerce backend with an official Next.js storefront example built around its GraphQL API and code generation tooling. If your team already leans GraphQL — typed queries, generated hooks, a strongly-typed schema as the contract between frontend and backend — Saleor's storefront starter fits naturally. It handles internationalization, multi-channel selling (different currencies/languages per channel), and a reasonably complete checkout flow better than the more minimal Vercel starter.
The learning curve is real if your team hasn't worked with GraphQL codegen pipelines before — expect a few days of ramp-up just to get comfortable with the query/schema workflow before you're productive. As with Medusa, you're also running (or paying to host) the Saleor backend itself, so factor that operational cost in alongside the "it's free" headline.
BigCommerce Catalyst
Catalyst is BigCommerce's own next-generation storefront, built on Next.js and open-sourced, with a notably more complete out-of-the-box feature set than the other three: faceted search, a full checkout flow, and design tooling (Makeswift integration) aimed at letting non-developers adjust page layout without touching code. Because it's vendor-maintained by a company that also sells the commerce platform behind it, it tends to get consistent updates and official support in a way community-driven starters sometimes can't match.
The catch is coupling: Catalyst is built around BigCommerce as the backend. It's genuinely open-source and self-hostable as a storefront, but you're not swapping in an arbitrary backend the way Next.js Commerce's adapter pattern theoretically allows — you're choosing BigCommerce as your commerce platform and getting a strong, free Next.js front end for it in return.
Head-to-Head: Which One for Which Situation
- Already on Shopify, want a Next.js front end, fine with hosted checkout: Next.js Commerce is the most direct fit and the best reference for App Router patterns.
- Want full backend and checkout ownership, comfortable running a Node service: Medusa's Next.js starter gives you the most control for zero licensing cost.
- Team is GraphQL-fluent, need multi-channel/multi-locale from day one: Saleor's storefront example is built for exactly that.
- Want the most complete out-of-the-box UI and don't mind committing to one commerce platform: Catalyst is the least assembly-required option, backed by BigCommerce as the vendor.
- Pure learning project or portfolio piece with no real backend yet: start with Next.js Commerce against its demo data or a Shopify dev store — it's the fastest path to something running.
Where This Leaves Design-System Quality
Every starter on this list optimizes for architecture and integration correctness, not visual polish — which is the right priority for a reference implementation, but it means none of them ship a merchandising-ready design system out of the box. Expect to invest real design time regardless of which one you pick: typography, spacing, color tokens, product-card layout, and mobile checkout flow all need attention before a starter looks like a finished store rather than a demo. That gap between "functioning Next.js commerce architecture" and "a storefront that looks and converts like a finished product" is exactly the space Polo Themes is building toward next — we design storefront themes today for Shopify and as Figma kits, and production-grade Next.js and headless-commerce starters are a direction we're actively building for, aimed at closing that design gap on top of an open architecture rather than a from-scratch UI. If you want to see the design standard we hold storefronts to in the meantime, our Shopify theme catalog and Figma design kits are the closest live reference, and we'll cover the Next.js starters as they ship on the Polo Themes blog.
A Few Traps to Avoid
Don't judge a starter purely by GitHub stars — several popular commerce starter repos accumulated stars during a launch spike and then went quiet, which matters a lot once you hit an edge case and need an answer. Don't assume "headless" means "backend-agnostic" — as the Medusa and Saleor examples show, plenty of genuinely open-source starters are still tightly coupled to one specific backend's data model, and swapping it later is a rewrite, not a config change. And don't underestimate checkout: it's consistently the most underbuilt part of every free starter, because building a real, PCI-conscious checkout flow is a lot of unglamorous work that a reference repo has little incentive to do fully. Budget real time for it no matter which starter you choose.
Frequently Asked Questions
Is there a genuinely free Next.js e-commerce theme that requires zero backend setup?
Not really, and that's inherent to what "headless" means. Every option here needs at minimum a demo store or a self-hosted backend connected before it does anything beyond render placeholder data. If zero backend setup is the requirement, a hosted platform theme (not a Next.js starter) is the better fit.
Is Shopify Hydrogen a Next.js starter?
No. Hydrogen is Shopify's own headless framework, built on React Router rather than Next.js. It's a strong option if you want to stay inside Shopify's tooling, but it doesn't belong on a "Next.js starter" shortlist, and using it means giving up Next.js-specific features like the App Router's caching model.
Which of these is easiest for a solo developer to get running in a weekend?
Next.js Commerce against a Shopify demo store is typically the fastest path to something visibly working, since Shopify hosts checkout and the storefront API for you. Medusa and Saleor both require standing up and configuring a backend first, which is worthwhile for a real business but adds a day or two before you see a working cart.
Will Polo Themes sell a Next.js starter?
We're building toward production-grade Next.js and headless-commerce starters as a stated direction, but nothing is available to purchase yet. Our current products are Shopify themes and Figma design kits, browsable at our full theme catalog; we'll announce Next.js starters here when they're ready rather than before.