Saleor vs Medusa
Architecture decision record. Full analysis in platform-eval-comparison.
Decision
Medusa v2 with Solace starter + Fashion’s MeiliSearch module.
Initially chose Saleor for Paper (storefront), but reversed after detailed starter audits. See platform-eval-comparison for the full evaluation of 6 starters across both platforms.
Context
The webshop was a custom Next.js storefront using Square as commerce backend. It worked but had scaling issues: no customer accounts, no CMS, manual inventory, and heavy frontend lift for every feature. Two commerce platforms were evaluated to replace the custom approach.
Why Medusa Won
- 2 fewer services to deploy — integrations (Square sync, Ingram enrichment, payments) run in-process as modules/subscribers, not standalone apps. 4 Railway services vs 6+.
- Stripe + PayPal already working in Solace starter (Saleor Paper ships with dummy payment)
- Node.js backend — same language as storefront, team is JS-oriented
- ~600 fewer LOC for custom integrations (~1,000 vs ~1,600)
- Solace starter provides CMS pages (Strapi, swapping to Payload), blog, dark mode, lightbox gallery; Fashion’s MeiliSearch module adds autocomplete search
What Saleor Did Better
- JSON-LD structured data (needs ~100 LOC to add to Solace)
- Attribute-based faceted filtering (Medusa needs custom module work)
- Dynamic OG images (nice-to-have)
Trade-offs Accepted
- MeiliSearch adds a service (vs Saleor’s built-in search)
- Solace SEO is thinner than Paper’s (JSON-LD, OG gaps — budgeted half-day fix)
- Medusa v2 is newer, less battle-tested than Saleor
Related
- store-rebuild — the resulting architecture
- platform-eval-comparison — detailed starter audits and final recommendation
- webshop — what’s being replaced