mrkeyoor.com_
Sat 17 Oct 13:35 UTC
Webevaluationupdated 26 Aug 2026

medusa review

Medusa is an open-source commerce backend and application framework for building online stores, marketplaces, B2B systems, and other custom selling flows. It supplies the difficult commerce basics, including products, carts, orders, inventory, payments, and an admin dashboard, while leaving the customer-facing storefront and unusual business rules under your control.

+72stars / 7d
Verdict

Our Medusa checkout built successfully in 381 seconds, but the available Jest target ran only 1 test, so TypeScript commerce teams still need their own checkout, payment, tax, and fulfillment coverage. Choose it when custom commerce rules justify owning a 1.3-million-line platform and a separate storefront. A conventional shop that mainly needs fast launch and managed operations is better served by a hosted product.

We ran it

Lab card: what happened when we ran medusaScreenshot of medusa (medusajs.com)
Install✓ · 71s2376 packages · 911 MB
Build✓ · 381s
Tests✓ · 374s1 passed · 0 failed of 1 (jest)
Repo23847 files~1,311,624 lines of source · 268.3 MB · 38 CI workflows

Answers from our run

Does medusa build from source?

Dependencies installed in 71 seconds (2376 packages), and the build succeeded in 381 seconds. We cloned commit b2eaae1 into a clean Debian container with 3 CPUs and no project-specific setup.

Do medusa's tests pass?

Yes. The project's own test command finished in 374 seconds and reported 1 passed, 0 failed (jest).

Who should not use medusa?

Merchants who want a finished hosted shop with themes, checkout, and operations handled for them: the local product is a Node.js backend plus admin, and the storefront is a separate optional application.

What are the alternatives to medusa?

Saleor, Vendure, Spree Commerce. Our Medusa checkout built successfully in 381 seconds, but the available Jest target ran only 1 test, so TypeScript commerce teams still need their own checkout, payment, tax, and fulfillment coverage.

Setup3/5Fast generator, but PostgreSQL and a separate storefront remain
Docs5/5Extensive guides, references, recipes, and upgrade notes
Community5/5Large adoption, current pushes, and active issue handling
Maturity4/5Serious commerce core with upgrade and platform rough edges

Discussed on

  1. hnShow HN: Medusa – Open-source alternative to Shopify373 points
  2. hnMedusa is a device that allows connecting of old computers to modern displays144 points
  3. hnDjango-medusa: Rendering Django sites as static HTML45 points
  4. hnShow HN: Medusa - The open-source Shopify alternative33 points
  5. hnAncient Thresholds: Classical Welcome Mats and Protective Medusa Mosaics20 points

Who it’s for

TypeScript teams building a custom storefront that would otherwise have to create commerce logic from scratch.
Businesses with marketplace, B2B, point-of-sale, or distributor workflows that do not fit a hosted shop template.
Agencies that want an MIT-licensed commerce core they can extend for several clients.
Teams willing to operate a Node.js service and PostgreSQL, or pay for Medusa Cloud to handle deployment.

Who it’s NOT for

Merchants who want a finished hosted shop with themes, checkout, and operations handled for them: the local product is a Node.js backend plus admin, and the storefront is a separate optional application.
Small teams that do not want to own upgrades and regression testing: v2.18.0 includes breaking changes to relation loading and generated service delete return values.
Operators deploying on ARM64 Linux without time to investigate platform-specific failures: an open report says fresh v2.16 and v2.17.2 projects can hang during database migrations on that architecture.
Developers pinned to older Yarn or pnpm releases: a current installation notice documents npm 429 failures and recommends current Yarn or pnpm as a workaround.

Setup reality

Our Node 22 sandbox installed 2,376 Yarn packages in 71 seconds and used 911 MB on disk. Building the monorepo took 381 seconds. The available Jest target passed its single test in 374 seconds.

A local application also needs Git and PostgreSQL; the generator creates the backend and Vite admin, while the Next.js storefront is separate. Production adds payment, fulfillment, file storage, email, tax, backup, and monitoring decisions.

Commit b2eaae1 was a 268.3 MB checkout with 23,847 files and about 1,311,624 source lines. Medusa Cloud removes much of the deployment work, but that is a managed-service choice rather than a simpler self-hosted installation.

What happened when we ran it

Our Node 22 sandbox installed 2,376 Yarn packages in 71 seconds, consuming 911 MB on disk. Building commit b2eaae1 took 381 seconds. The checkout was 268.3 MB, with 23,847 files and about 1,311,624 source lines, which makes Medusa one of the larger commerce codebases a team can choose to own.

The available Jest target succeeded in 374 seconds, with 1 test passed and none failed. That result is too narrow to support a broad quality claim about a monorepo with 38 CI workflow files. It says the target we found passed in our sandbox; store teams still need tests for their own checkout, pricing, tax, payment, refund, and fulfillment paths.

Medusa supplies a commerce core, not a finished shop

Medusa provides TypeScript modules for products, pricing, carts, orders, inventory, payments, fulfillment, tax, customers, and promotions. Developers can add data models, API routes, background work, subscribers, and workflows without forking the core. The customer-facing storefront stays separate. The installer can add a Next.js starter, but each team owns its design, hosting, accessibility, analytics, and customer experience.

That split suits custom products and punishes buyers who expected a boxed store. The repository uses an open-core model: core commerce modules are under MIT, while identified Enterprise Edition material requires a commercial agreement.

Where the flexibility earns its keep

Medusa makes the most sense when the business model is the hard part. The README explicitly positions it for direct-to-consumer and B2B stores, marketplaces, distributor platforms, point-of-sale systems, and service businesses. Those projects often need custom approval flows, unusual price lists, split fulfillment, vendor logic, or connections to an existing enterprise system. A module and workflow architecture gives those changes a defined home.

Release 2.19.0 added inventory CSV export, custom fulfillment addresses, notification preferences for order edits, and generic OIDC authentication. It also moved the admin to Vite 7 and React Router 7, a breaking change with newer Node and browser requirements. Useful commerce work and migration cost arrive together.

The admin dashboard is another meaningful advantage. Internal users need to manage products, orders, customers, promotions, and settings without waiting for a developer. Medusa includes that base and supports dashboard extensions, so a team can add business-specific screens while retaining the standard operating interface. That is much more useful than an API-only foundation that leaves every internal tool unfinished.

PostgreSQL is only the first production dependency

Local installation is approachable by commerce-platform standards. The official guide requires Node.js 20 or newer, Git, and PostgreSQL. Running create-medusa-app creates the backend and admin, and can add the Next.js starter storefront. A developer can therefore inspect products and make API calls without assembling the repository by hand.

Production is a longer checklist. A functioning store needs payment and fulfillment providers, transactional email, durable file storage, tax decisions, secrets, backups, logging, monitoring, and a deployment plan for both backend and storefront. Search and caching may add further services. Teams also need seed data, integration tests, and a safe process for webhooks and financial workflows. Medusa Cloud offers managed deployments and scaling, which is the easiest official route, but self-hosting means owning those choices.

Installation itself currently has an unusual wrinkle. Open issue 16294 says the large number of preview and snapshot versions on npm can trigger 429 errors for some installs. The maintainers recommend newer Yarn or pnpm releases while they work with npm. That is a workaround, not a fatal design problem, but it weakens the otherwise tidy first run.

ARM64 Linux operators have a more serious reason to test before committing. Open issue 16011 reports medusa db:migrate hanging on fresh projects across Medusa 2.16.0 and 2.17.2 on ARM64 Linux while equivalent x86_64 systems complete. The report includes several Node versions and environments. It does not prove every ARM host will fail, but it is specific enough that an Ampere or similar deployment should make migration testing an early gate.

Upgrades require attention

Medusa is active, and active frameworks move. Version 2.19.0 requires Vite 7, React Router 7, and newer Node point releases; it also removes several JS SDK product-option methods. Pin versions, read release notes, and run tests against real checkout, refund, tax, and fulfillment paths.

Recent open reports also cover misaligned columns in paginated product CSV exports, store credit behavior when an amount is zero, and field restrictions that may depend on an undocumented feature flag. These are not reasons to reject the whole platform. They are reminders that commerce bugs touch money and operations, so a green build needs domain-level assertions rather than only unit tests around custom code.

Health and the decision

The repository was pushed on August 26, 2026, and v2.19.0 was released on August 13. GitHub listed 170 open issues and pull requests, with bug reports and fixes updated on August 26. More than 36,000 stars and the README's 14,000-member Discord claim indicate a large audience, though neither guarantees support for a particular integration.

Documentation is one of Medusa’s best arguments. The site goes far beyond installation into framework concepts, modules, workflows, API references, storefront development, admin extensions, integrations, recipes, testing, and deployment. Release notes call out breaking behavior with migration advice. Newcomers still face a large conceptual map, but the answers are generally available.

Use Medusa when a custom commerce model justifies owning a software platform and TypeScript is a comfortable operating language. It gives a capable team far more structure than a homegrown backend while preserving control over the storefront and business logic. If your priority is opening a conventional shop with minimal technical ownership, its strengths become responsibilities, and a hosted service is the better purchase.

Alternatives

ProjectWhat it isPick it when
Saleor gh↗A Python and GraphQL-first headless commerce platform with a polished dashboard.pick this instead when GraphQL is central to your architecture and your team prefers Python for the commerce core.
VendureA TypeScript headless commerce framework built on NestJS, GraphQL, and plugins.pick this instead when you want a NestJS foundation and a strongly GraphQL-oriented extension model.
Spree CommerceA long-running Ruby commerce platform for stores, marketplaces, and B2B projects.pick this instead when your team is strongest in Ruby and values a much older commerce ecosystem.

What people are saying

  1. [github-trending] medusajs/medusa

Sources

  1. Medusa repository and README
  2. Medusa installation guide
  3. Medusa v2.19.0 release notes
  4. Medusa installations failing with 429 errors
  5. ARM64 Linux database migration hang report

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →