Young's Mind
Medusa V2

Medusa V2 — product research

Young, 2026-10-18: add Medusa to the products research under Projects/vhost, with templates, POS, payments, and features.

Medusa V2 — product research

Young, 2026-10-18: add Medusa to the products research under Projects/vhost, with templates, POS, payments, and features.

1. What Medusa is

Medusa v2.x — open-source commerce platform (MIT core, open-core model). The fastest-growing open-source commerce platform on GitHub (36.7k stars). Core modules: Cart, Products, Orders, Regions, Pricing, Promotions, Tax, Inventory, Customers, Payments, Fulfillment.

Licence: MIT for core. Enterprise Edition (RBAC, SSO, audit logs) requires a commercial agreement — we are not using it.

Cost to us: $0 (self-hosted, MIT). Medusa Cloud is optional and bills per seat ($30/seat/mo) — we self-host on our prod node.

2. Starters (templates) — from medusajs.com/starters

StarterBuilt byStackWhat it gives us
B2C StarterMedusaNext.js 15Instant storefront: customer accounts, cart, checkout, orders, product pages. Production-ready.
B2B StarterMedusaNext.js 15Company-employee management, draft orders, quotes, cart approvals, spending limits, bulk add-to-cart
POS StarterAgiloReact Native + ExpoIn-store POS: barcode scanning, cart, payments, customers, inventory
Marketplace StarterRigbyNext.jsMulti-vendor: vendor dashboards, split cart, commissions, support chats
Fashion StarterAgiloNext.jsVisual-first storefront for apparel/brands
Munchies StarterTinloofNext.js 15Content-rich: product grid, cart, checkout + Sanity, Resend, Vercel Analytics
TanStack FashionMedusaTanStackClean fashion storefront
Made-to-Order ConfiguratorMedusaTanStackLive product attribute configuration with real-time pricing
Industrial B2B PortalMedusaTanStackBulk add-to-cart, company management, quotation, hidden prices
Guided Quiz CommerceMedusaTanStackProduct-matching quiz to cut decision fatigue
One-Product DTCMedusaTanStackSingle-product storefront, buy from front page
B2C with StrapiLambda CurryRemixContent-rich with Strapi CMS integration
Coffee (Barrio)Lambda CurryRemixTurborepo monorepo, Stripe payments

Which we use:

  • B2C Starter → Yukon IT storefront (P2)
  • POS Starter (Agilo) → in-store POS (P3)
  • B2B Starter → future B2B tier (Shop+)

3. POS — the Retail POS Starter (Agilo)

  • Stack: React Native + Expo (iOS + Android)
  • Features: barcode scanning (camera), cart, payments, customers, inventory
  • Gap: no integrated payments yet (manual-payment path now; terminal roadmap)
  • Gap: no offline mode
  • Our fork: Agilo medusa-pos-starter (MIT) — we fork and extend

4. Payments

Medusa supports payment providers via modules. Key ones:

ProviderTypeNotes
StripePayment modulePrimary. 2.9% + $0.30 online, ~2.6% + 10¢ in person
PayPalPayment moduleSecondary option
Manual paymentBuilt-inFor POS without terminal integration (current gap)

Our rule: pass-through processing (no GMV cut). Stripe is the default; manual payment is the POS fallback until terminal integration ships.

5. Key features (what Medusa gives us for free)

FeatureIncluded in core
Products, variants, categories✅
Cart, checkout, orders✅
Customers, accounts✅
Regions, currencies, tax✅
Pricing, promotions, discounts✅
Inventory management✅
Admin dashboard (Vite)✅ (free, unlimited users)
Admin SDK (widgets, routes)✅
Payment modules (Stripe, PayPal, manual)✅
Fulfillment modules✅
Workflow engine (saga pattern)✅
Event subscribers✅
Scheduled jobs✅
Custom modules (DML)✅
Admin UI widgets✅ (injection only — no layout customisation)
POS❌ (separate starter, Agilo)
AI agent❌ (we add EVE)
Multi-tenancy❌ (we build per-tenant Docker)

6. Admin dashboard

  • Built with: Vite v7, React Router v7
  • Access: http://localhost:9000/app
  • Customisation: widgets and routes only — no layout/design/content changes
  • Medusa UI package: ready-made components for consistent design
  • Admin SDK: @medusajs/admin-sdk for extending

Limitation: cannot restyle the admin. For commerce ops this is fine. For tenant-specific branding, we build a separate Nuxt UI portal (see admin-backend-decision-medusa-vs-nuxtui.md).

7. How it fits our stack

Per-tenant Docker compose (Tam's design):
  Medusa server (port 9000) + worker + Postgres + Redis
  + Next.js storefront (B2C starter, port 8000)
  + POS (Agilo, React Native, connects to Medusa API)
  + EVE agent (self-hosted, Apache-2.0)
  • Medusa = the commerce engine (products, orders, payments, inventory)
  • EVE = the AI receptionist (per-tenant memory, tenant-tuned persona)
  • Nuxt UI portal = the operator dashboard (EVE, KB, domain, O365, billing)
  • POS = in-store sales (manual payment now, terminal later)

8. Licence summary

ComponentLicenceCost
Medusa coreMIT$0
Medusa AdminMIT (ships with core)$0
Medusa CloudManaged (optional)$30/seat/mo (we don't use)
Enterprise Edition (RBAC/SSO/audit)Commercial agreementnot used
Medusa UI packageMIT$0
POS Starter (Agilo)MIT$0 (we fork)

Our licence profile: clean. MIT core + MIT admin + MIT POS + Apache-2.0 EVE. No competing-use restriction, no per-seat metering, no GMV cut.


9. Medusa feature matrix — what we get vs what we build

FeatureMedusa providesWe build
Product catalogue✅—
Cart + checkout✅—
Orders + fulfillment✅—
Customers + accounts✅—
Inventory✅—
Regions, currencies, tax✅—
Promotions, discounts✅—
Payment processing (Stripe)✅ moduleStripe account setup
Admin dashboard✅ (Vite, free)—
POS (in-store)❌Agilo fork + our extensions
AI agent (EVE)❌EVE integration
Multi-tenancy❌Per-tenant Docker
KB / docs❌Docus
Domain + email❌Our management
2FA / account mgmt❌Our portal (Nuxt UI)
Tenant billing❌Stripe subscription
Copyright © 2026