SaaS stacks
Aaron Brick13 min read27 views

Medusa.js 2.0 review (June 2026): hands-on with the open-source headless commerce starter

ShipGarden's hands-on June 2026 review of Medusa.js v2 (v2.17.1) as the open-source headless commerce backend for Next.js. Five deploy paths, real cost-per-100-orders numbers, payments via Stripe Paddle and Polar.sh, and the v1-to-v2 migration story you don't want to volunteer for.

Updated on July 2, 2026

A rounded shopping-bag shape beside two cards on a warm beige paper background with a moss-green accent.
A rounded shopping-bag shape beside two cards on a warm beige paper background with a moss-green accent.
On this page

Quick answer (June 28, 2026): Medusa.js v2 is the open-source, MIT-licensed, TypeScript-native headless commerce backend you want when Shopify Headless feels expensive and a roll-your-own carts table feels reckless. The v2 line is healthy in June 2026: the medusajs/medusa GitHub repo sits at 34.7k stars, default branch develop, last commit on June 28, 2026 (today), and v2.17.1 was tagged on June 25, 2026. Plug it behind a Next.js 15 storefront with the official starter, pair Stripe or Polar.sh for checkout, and you have a real commerce stack a solo founder can self-host on Railway for the cost of a takeout dinner. The catches: Postgres + Redis + a real backend to operate, an admin panel that is functional rather than gorgeous, and a v1-to-v2 migration story you don't want to volunteer for if you already have a v1 store in production.

Three rounded cards labeled Medusa, Next.js and Totalum on a warm beige background, connected by a thin moss-green arrow, with a small monospace caption reading medusa-v2-2026.

What is Medusa.js 2.0 in June 2026?

Medusa logo Medusa is a Node.js + TypeScript commerce platform that ships as a set of modules you compose into a backend: products, carts, orders, customers, regions, fulfillment, payment, promotions, tax. The v2 generation (general-availability shipped October 2024) is a near-total rewrite of the original v1 we used to call MedusaJS, with a new module framework, a new admin dashboard built on Vite + React, and workflows as the first-class way to orchestrate multi-step commerce flows. The fastest install is npx create-medusa-app@latest, which scaffolds the backend, a Postgres-aware schema, the admin, and the official Next.js logo Next.js 15 starter storefront in a single command. The platform stays MIT, the team also runs a managed cloud (Medusa Cloud) for teams that don't want to babysit Postgres.

If you've only met Shopify Headless or commercetools, the right mental model is: Medusa is to commerce what Strapi is to content. You bring the storefront, you keep the schema, the platform handles the commerce primitives so you don't write your own cart-merge-on-login bug.

Is Medusa v2 actually maintained in 2026?

Yes, and the cadence is healthier than the SERP suggests.

Pulled live from the GitHub API on June 28, 2026:

Scroll to see more

SignalValue (June 28, 2026)
Repo stars34,753
Default branchdevelop
Last commit2026-06-28T10:03:36Z (today)
v2.17.1 release2026-06-25T09:49:54Z
v2.17.0 release2026-06-24T18:47:31Z
v2.16.0 release2026-06-18T12:00:47Z
v2.15.x seriesMay 2026 (4 patch releases)
Discord14,000+ members per the README

That's three minor releases in the last 30 days and a tag-a-week cadence for patches. We mention this because Day-8's review of LlamaIndex.TS had to lead with a deprecation notice the SERP top-ten didn't surface. Medusa is the opposite story: the SERP shows results from October 2024 because the v2 launch beat was the loudest moment, and most reviewers stopped writing after that. The project itself kept going.

How does the Next.js starter actually feel?

We cloned medusajs/nextjs-starter-medusa on June 27, 2026 and pointed it at a fresh local Medusa v2.17.1 backend. The honest beat-by-beat:

  1. npx create-medusa-app@latest medusa-shipgarden finished in about two minutes on a 200 Mbps connection, including the seeded sample catalog.
  2. Local Postgres + Redis came up via Docker in another minute. The starter wants both. You can substitute Neon's free Postgres tier with no friction; Redis we replaced with Railway's free Redis instance for the deploy test.
  3. The Next.js storefront started on :8000, the admin on :7001, the backend on :9000. App Router, React Server Components, Tailwind 3.x. No Pages Router fallback to fight.
  4. The seed catalog had products, regions, currencies, shipping options. We were placing a fake test order in seven minutes.
  5. Stripe test mode plugged in via the official @medusajs/payment-stripe module and one env var. The hosted-checkout flow is not Shopify-slick but it is honest: a clean card form, a real 3DS challenge, a redirect back, an order in the admin.

The thing the SERP underrates: the v2 admin is finally good. It was a meaningful weak point in v1 (we said so in our 2023 notes). In v2 it is a Vite + React app that loads fast, supports custom widgets through a documented plugin API, and renders the new B2B starter's customer-group + quote workflows without ceremony.

> The v2 admin is finally good enough that we'd put a non-technical merchandiser in front of it without apologizing.

What is the admin and plugin ecosystem like in 2026?

The v2 plugin model is module-first: every commerce capability is a module, and your custom code lives as a module too. The ecosystem we hit on June 27 covers:

  • Stripe logo
    Stripe as the default payment provider plugin, kept in lockstep with releases.
  • Polar.sh logo
    Polar.sh via the community module if you want merchant-of-record for cross-border tax. Functional, not as polished as Stripe.
  • Paddle logo
    Paddle also via a community module, paywall-style use cases mostly.
  • Algolia and Meilisearch search plugins; both stable.
  • A growing set of CMS bridges to Sanity, Strapi, and (newer in 2026) Payload.
  • SendGrid + Resend email; both reliable.

Where it still hurts: the plugin shelf is smaller than Shopify's app store by two orders of magnitude. If you need a niche post-purchase upsell widget that exists on the Shopify side, you are writing it.

Payments: Stripe, Paddle, Polar paths in practice

You pick by tax + cross-border + chargeback risk, not by integration polish.

  • Stripe: lowest fee in the US (per the Stripe Pricing page, June 2026), you handle EU/UK VAT and US state sales tax yourself. Best path if you have a real entity per jurisdiction.
  • Polar.sh: merchant-of-record, they handle VAT and sales tax. You pay a higher percentage. Best path for indie founders selling globally without a tax stack.
  • Paddle: also MoR, similar model, more enterprise feel. Best when you also sell SaaS subscriptions and want one MoR across the catalog.

The Medusa side of all three is the same: install the module, set an env var, wire the webhook URL. The decision is downstream and accounting-driven. Verify rates and country coverage on each vendor's pricing page before committing; these change.

Deploy paths in 2026

Scroll to see more

PathWhere backend runsWhere storefront runsReal monthly floorBest for
A. Self-host on RailwayRailway service, $5 hobby + Postgres + RedisVercel free + Next.js starter~$30Solo founder, <1k orders/mo
B. Render or FlyRender web service or Fly.io appVercel free or Cloudflare Pages~$25-40Solo founder with EU data residency needs
C. Medusa Cloud (managed)Medusa CloudVercel freeContact pricingTeams that don't want Postgres pager duty
D. Vercel Commerce shimSkip Medusa, use Vercel logo vercel/commerce with a different backendVercel$0 + backendTeams who only want the storefront pattern
E. Managed Next.js shell + your own backendMedusa on Railway/FlyTotalum-managed Next.js~$30 + your Totalum planFounders who want one platform handling auth + admin + hosting around a Medusa core

Path E is the one we'd reach for if we wanted the Medusa commerce backend plus the kind of managed Next.js + auth + admin + custom-domain shell that Totalum provides for the rest of the app. The honest framing: Totalum doesn't replace Medusa for commerce. It replaces the boilerplate around it (auth, the admin panel for non-commerce data, hosting, custom domains) so you ship one product rather than two. You still bring your own Medusa backend on Railway or Fly; Totalum handles the Next.js shell and everything that isn't a cart.

Where Path E loses: you are now operating two services (Medusa + Totalum), and the data layers don't auto-join. If a single-platform feel matters more than commerce depth, paths A through C are simpler.

Cost per 100 orders, real numbers

On June 27, 2026 we estimated the all-in cost of running a small store for a month at three traffic volumes. Postgres on Neon free, Redis on Railway free, backend on Railway $5 hobby, Stripe at 2.9% + 30¢ US standard rate.

Scroll to see more

VolumeOrder GMVStripe feesInfraTotalPer-order all-in
100 orders / mo, AOV $40$4,000$146$5-30$151-176$1.51-1.76
500 orders / mo, AOV $40$20,000$730$30-60$760-790$1.52-1.58
2,000 orders / mo, AOV $40$80,000$2,920$60-150$2,980-3,070$1.49-1.54

For comparison, Shopify Basic ($39/mo June 2026 pricing) plus Shopify Payments (2.9% + 30¢) at the same 500-order volume runs ~$769/mo total, almost identical. The argument for Medusa isn't cost at this scale. It's ownership, schema control, and the ability to extend the platform when you outgrow the Shopify app store.

The argument flips at the high-volume end. At 5,000 orders/mo with a custom theme, Shopify Plus starts at $2,300/mo in 2026, and headless add-ons stack on top. A self-hosted Medusa stack at the same volume runs $150-400/mo infra plus your time. The break-even is somewhere between 1,500 and 3,000 orders/mo depending on your customization needs.

v1 to v2 migration: don't volunteer for it

If you have a v1 Medusa store in production, the v2 migration is a rewrite, not an upgrade. The data model changed, the plugin contract changed, the admin is a different app. The Medusa team's official guidance in 2026 is to treat v2 as a new store and migrate data with a custom script. We talked to two solo founders on the r/selfhosted and r/vibecoding threads who pulled it off; both said the realistic time was six to ten weeks of part-time work for a store under 10k orders, longer if you had v1 plugins. If you have a working v1 store and no compelling v2 feature, stay on v1 until you actually need something v2 ships.

Where Medusa loses

Honest:

  1. The plugin shelf is small. If your business depends on a Shopify-app-store widget, that widget is on you.
  2. The admin is functional, not beautiful. Compared to a polished Shopify or Vercel Commerce admin, Medusa's still reads as a dev tool.
  3. You operate Postgres and Redis. That's not free even on managed tiers; somebody has to watch the pager.
  4. B2B is newer than B2C. The B2B starter shipped in 2024 and is now solid, but the surface area is younger.
  5. The v1 to v2 story is unkind. If you have v1 in production, you will resent the cost of the move.

Where Medusa wins

Equally honest:

  1. MIT, self-hostable, real ownership. Your schema, your data, no per-store revenue share to a platform.
  2. The v2 module model is genuinely good. Adding a custom commerce primitive is a module, not a fork.
  3. Workflows are first-class. Multi-step flows (subscriptions, B2B quote-to-order, fulfillment with carrier callouts) read as code, not as plugin spaghetti.
  4. Next.js storefront is current. App Router, RSC, Tailwind, no Pages-Router legacy to drag along.
  5. EU + global tax via Polar or Paddle is a one-module install. Tax-and-payments compliance is not a six-week project.

For the agency teams sizing this for client work, our peers at DevShopVault keep a running shortlist of production-ready AI-app and SaaS builders for agency client work; Medusa belongs on it when the brief is "open-source, ownership, real commerce," not when it's "fastest path to a brochure shop." And for the solo founders reading this from inside an MRR ramp, OperatorBook's freelance-to-50k-MRR founder narrative is the one we keep recommending because the commerce-stack decisions in that story map cleanly onto the Medusa-vs-Shopify-vs-roll-your-own fork.

Your move

Clone the starter today. Use Path A. Place a test order. If the platform survives a real Saturday afternoon of clicking, it survives your next side project.

FAQ

Is Medusa.js 2.0 free in 2026?
Yes. The framework is MIT, self-hostable forever, no per-store fees. Medusa Cloud is a paid managed service for teams that don't want to operate Postgres themselves; it is separate from the open-source framework.

What's the current Medusa version in June 2026?
v2.17.1, tagged on the medusajs/medusa GitHub repo on June 25, 2026. The repo last received a commit on June 28, 2026. The v2 line has shipped three minor releases in the last 30 days.

Is Medusa.js still maintained in 2026?
Yes. Tag cadence is roughly weekly, the Discord has 14,000+ members per the README, and the team ships both the framework and Medusa Cloud actively. The SERP shows 2024 articles because that was the v2 launch beat, not because the project went quiet.

Medusa vs Shopify Headless, which is cheaper?
At small volumes (under 500 orders/mo) they cost about the same once you add Stripe fees plus hosting. Medusa pulls ahead clearly above 1,500-3,000 orders/mo when Shopify Plus starts to bite. Pick Medusa for ownership and schema control; pick Shopify for the app store and zero ops.

Can I use Medusa with Next.js 15?
Yes. The official medusajs/nextjs-starter-medusa ships with Next.js 15 App Router, React Server Components, and Tailwind. We tested it on June 27, 2026 against a v2.17.1 backend without modification.

Does Medusa support Stripe, Paddle, and Polar.sh?
Stripe is the first-party module and the most polished. Paddle and Polar.sh are available via community modules and are stable enough for production, with the usual merchant-of-record tradeoff: you pay a higher percentage in exchange for VAT and sales-tax handling.

Is the Medusa v1 to v2 migration worth it for an existing store?
Only if you genuinely need a v2-only feature (the new admin, the module framework, the modern Next.js storefront). For most v1 stores it is a six-to-ten-week part-time rewrite. Stay on v1 until the business case is real.

How does Medusa compare to Saleor or commercetools?
Saleor is Python + GraphQL and has a polished admin; pick it if your team prefers Python. commercetools is enterprise-grade with enterprise pricing; pick it if you need MACH-certified procurement. Medusa is the right pick when you want MIT, TypeScript, Next.js-native, and a small enough surface to actually understand.


ShipGarden curates open-source SaaS and AI-app boilerplates. We have no commercial relationship with Medusa, Vercel, Stripe, Polar.sh, Paddle, Railway, Neon, Shopify, commercetools, Saleor, or Totalum. The numbers in this review come from a real test install we ran on June 27 and 28, 2026 against medusa v2.17.1. Curated by Aaron Brick; technical review by Yui Tanaka.

A

Written by

Aaron Brick

Aaron Brick is a curator at ShipGarden, where he reviews open-source SaaS and AI-app boilerplates one weekend at a time. He doesn't grind; he ships, and writes down the parts that bit him so you don't have to find them yourself.

Frequently asked questions

Is Medusa.js 2.0 free in 2026?

Yes. The framework is MIT, self-hostable forever, no per-store fees. Medusa Cloud is a paid managed service for teams that don't want to operate Postgres themselves; it is separate from the open-source framework.

What is the current Medusa version in June 2026?

v2.17.1, tagged on the medusajs/medusa GitHub repo on June 25, 2026. The repo last received a commit on June 28, 2026. The v2 line has shipped three minor releases in the last 30 days.

Is Medusa.js still maintained in 2026?

Yes. Tag cadence is roughly weekly, the Discord has 14,000+ members per the README, and the team ships both the framework and Medusa Cloud actively. The SERP shows 2024 articles because that was the v2 launch beat, not because the project went quiet.

Medusa vs Shopify Headless, which is cheaper?

At small volumes (under 500 orders/mo) they cost about the same once you add Stripe fees plus hosting. Medusa pulls ahead clearly above 1,500-3,000 orders/mo when Shopify Plus starts to bite. Pick Medusa for ownership and schema control; pick Shopify for the app store and zero ops.

Can I use Medusa with Next.js 15?

Yes. The official medusajs/nextjs-starter-medusa ships with Next.js 15 App Router, React Server Components, and Tailwind. We tested it on June 27, 2026 against a v2.17.1 backend without modification.

Does Medusa support Stripe, Paddle, and Polar.sh?

Stripe is the first-party module and the most polished. Paddle and Polar.sh are available via community modules and are stable enough for production, with the usual merchant-of-record tradeoff: you pay a higher percentage in exchange for VAT and sales-tax handling.

Is the Medusa v1 to v2 migration worth it for an existing store?

Only if you genuinely need a v2-only feature (the new admin, the module framework, the modern Next.js storefront). For most v1 stores it is a six-to-ten-week part-time rewrite. Stay on v1 until the business case is real.

How does Medusa compare to Saleor or commercetools?

Saleor is Python + GraphQL and has a polished admin; pick it if your team prefers Python. commercetools is enterprise-grade with enterprise pricing; pick it if you need MACH-certified procurement. Medusa is the right pick when you want MIT, TypeScript, Next.js-native, and a small enough surface to actually understand.