unsubbed.co

Saleor

High-performance open-source headless commerce platform built with Python, GraphQL, and React

Best for: Python-stack teams building multi-channel commerce with complex product catalogs

Open-source headless e-commerce, honestly reviewed. Built for engineers, not entrepreneurs — and it says so on the homepage.

TL;DR

  • What it is: Open-source (BSD-3-Clause) headless commerce API built on Python/Django with a GraphQL-only interface. Think Shopify’s backend stripped of its frontend and handed to your engineering team [4].
  • Who it’s for: Engineering-led commerce teams — CTOs scaling past Shopify’s transaction fees, agencies building custom storefronts, and developers who want full API control over every checkout event [3][website].
  • Cost savings: Shopify Basic starts at $39/mo plus transaction fees that compound fast. Shopify Plus starts around $2,300/mo. A self-hosted Saleor instance on a decent VPS runs $15–30/mo for infrastructure with unlimited orders and no per-transaction platform cut [4][5].
  • Key strength: True API-first architecture — GraphQL only, no REST afterthought. Everything is programmable: webhooks, synchronous callbacks, external app integrations, multi-channel pricing, multi-currency. Processes over 1 billion requests per month and 400,000 orders per month on their managed cloud [website].
  • Key weakness: Saleor requires engineers. The homepage literally says “not for everyone” and lists “hate working with engineers” and “looking for out-of-the-box” as reasons to walk away [website]. If you’re a solo non-technical founder, this is not your tool.

What is Saleor

Saleor is a headless e-commerce API. There is no monolith. There is no CMS bundled in. There is no drag-and-drop store builder. What you get is a Python/Django backend that exposes every commerce operation — products, pricing, orders, cart, checkout, promotions, stock — through a single GraphQL endpoint. You build the frontend yourself [README][4].

The project has been around since at least 2016 and sits at 22,709 GitHub stars as of this review — meaningfully ahead of Medusa (which had 9,300 stars in the comparison written on dev.to [3]) and in the same ballpark as Activepieces or Gitea in terms of community gravity. It’s maintained by a real company (Saleor Commerce), is licensed BSD-3-Clause, and the README promises it will stay free [4].

What makes Saleor’s architecture unusual is that its API-first stance is absolute. There is no “also REST” option. There are no legacy endpoints kept around for plugin compatibility. The GraphQL schema is the product. That discipline produces consistency, but it also means any engineer new to the project has to learn GraphQL before they can do anything [README][3].

The project ships three separate GitHub repositories: the core API (saleor/saleor), the admin dashboard (saleor/saleor-dashboard), and a reference React storefront (saleor/react-storefront). Deploying Saleor means running all three. None of them are optional if you want a working store [4].


Why people choose it over Shopify, WooCommerce, and Medusa

The dev community leans toward Saleor for one core reason: it treats the API as the product rather than an afterthought bolted onto a traditional CMS.

Versus Shopify. The comparison is most compelling for brands approaching Shopify Plus territory. Shopify’s transaction fees (0.5–2% on non-Shopify Payments plans) compound aggressively at volume. Shopify Plus is $2,300/mo minimum. Saleor self-hosted has no platform transaction cut and no tier-based pricing [5]. A Reddit thread on self-hosted e-commerce [1] explicitly calls this out: developers evaluating headless options consistently mention Shopify’s “black box” architecture as a friction point — you can’t override checkout logic, you can’t change the data model, you can’t run custom payment flows without paying for Plus-tier access. Saleor exposes every one of those surfaces through webhooks and synchronous callbacks.

Versus WooCommerce. WooCommerce is PHP plugin architecture bolted onto WordPress. It’s non-technical-friendly by design, which is the same reason it becomes a liability at scale. A 2025 analysis from Your Next Store [5] notes that a typical WooCommerce production store runs 15–30 plugins, with Sucuri’s 2023 Hacked Website Report attributing 95.5% of WordPress infections to outdated or abandoned plugins. Saleor avoids this because it has no plugin system at all — extensions run outside the core and communicate via webhooks. No shared process space, no dependency hell, no “plugin broke after update” Tuesdays [3].

Versus Medusa. This is the most useful technical comparison. A dev.to review [3] ran both side-by-side. Medusa is Node.js with a REST API and positions itself as “an Open Source Shopify alternative.” Saleor is Python/Django with GraphQL and positions itself closer to “a headless Magento 2 replacement” [3]. Key split: Medusa uses a monorepo plugin model where plugins run inside the same process — easier to set up, less architectural overhead. Saleor’s apps run outside the core and communicate via webhooks — more resilient at scale, harder to debug [3]. One dev.to commenter summarized it: if you’re a solo developer for a small business and you want quick wins, Medusa. If you need reliability, uptime guarantees, and parallel team development, Saleor [3].


Features

Based on the README, official documentation, and third-party reviews:

Commerce engine:

  • GraphQL-only API — every operation, every field, every filter [README]
  • Native multichannel support — per-channel pricing, currencies, stock, availability, and product visibility [README][4]
  • Multi-currency, multi-language, multi-warehouse out of the box [4]
  • Flexible order model with dispatch, refunds, partial fulfillment [4]
  • Cart with full discount and promotion engine [4]
  • Tax handling with third-party integration support [4]
  • SEO fields on products, categories, and pages [4]

Extensibility:

  • Two extension models: plugins (run inside the core, direct DB access) and apps (run outside, communicate via webhooks) [3]
  • Synchronous callbacks for overriding core flows — checkout, payment, shipping [README]
  • Webhooks for event-driven integrations [README]
  • Metadata and custom attributes for product modeling [README]
  • Dashboard iframe API for embedding external UIs inside the admin [README]
  • Configurator CLI for codifying and versioning store configuration [website]

Admin dashboard (separate repo):

  • React-based, decoupled from the core API [4]
  • PIM (product information management), OMS (order management), translations [website]
  • Efficient with large datasets [website]
  • Extensible — external apps can inject UI into the dashboard [README]

Infrastructure:

  • Docker and Docker Compose for local/production [4]
  • Cloud-native, battle-tested on global brands [README]
  • OpenTelemetry observability integration (beta as of this review) [website]
  • OIDC integration for existing identity providers [website]

What’s not there:

  • No built-in storefront — you assemble your own from the reference React app or build from scratch [4]
  • No REST API — GraphQL or nothing [README][3]
  • No built-in blog, content editor, or CMS beyond basic page/content management

Pricing: SaaS vs self-hosted math

Saleor self-hosted (BSD-3-Clause):

  • Software license: $0 [4]
  • Infrastructure: $15–30/mo for a VPS capable of running the API, dashboard, storefront, PostgreSQL, and Redis
  • No platform transaction fees
  • No order volume limits

Managed Saleor (Elestio):

  • Starts at $14/mo with automated backups, SSL, updates, and monitoring included [2]
  • Useful for teams that want Saleor’s architecture without the DevOps overhead

Saleor Cloud (official managed):

  • Public pricing not available — contact sales [website]. The homepage markets it at enterprise teams with SOC 2, GDPR, PCI-DSS compliance guarantees.

Shopify for comparison:

  • Basic: $39/mo + 2% transaction fee (non-Shopify Payments)
  • Shopify: $105/mo + 1% transaction fee
  • Advanced: $399/mo + 0.5% transaction fee
  • Plus: $2,300/mo+ (custom), transaction fees negotiated

Concrete savings at scale:

Say you’re processing $500,000/month in GMV. On Shopify Advanced, the 0.5% platform transaction fee (if not using Shopify Payments) adds $2,500/mo on top of the $399 plan — call it $2,900/mo. On Saleor self-hosted, that same $500k in GMV costs you a $25/mo VPS and your DevOps time. Over a year: Shopify ≈ $34,800 vs. Saleor ≈ $300 in infrastructure. The gap is real, but the caveat is also real: you need engineers to run Saleor [5].

The simpler math for earlier-stage founders: if you’re on Shopify Basic and doing $10k/mo in revenue, the transaction fee savings are maybe $200/year — not worth the migration. The case for Saleor sharpens dramatically above $100k/mo GMV or if you’re building a platform where you’re paying Shopify per merchant.


Deployment reality check

This is where Saleor earns its “not for everyone” label [website].

What you’re deploying: Three applications — the Python/Django API, the React dashboard, and your storefront (the reference React app or your own). Plus PostgreSQL and Redis. This is a service-oriented architecture, not a single docker-compose file.

The README points to a saleor-platform repository that bundles all components for local development. For production, you’re orchestrating multiple services [4].

Minimum infrastructure:

  • A VPS or cloud instance with 4GB+ RAM (Python Django apps are memory-hungry at idle)
  • PostgreSQL (external recommended for production)
  • Redis for task queue and caching
  • A reverse proxy (nginx or Caddy) for HTTPS and routing
  • Separate processes for the API, Celery workers, and dashboard

What can go sideways:

  • The three-repo structure means version compatibility is your responsibility. The README explicitly warns: “The main branch is the development version of Saleor and it may be unstable. To use the latest stable version, download it from the Releases page.” You need to keep the API, dashboard, and storefront on matching 3.x releases [4].
  • The dev.to comparison [3] notes that Saleor’s webhook-based app architecture “requires more effort to set up” compared to monorepo plugins — there’s more moving parts to debug.
  • There is no guided setup wizard. No one-click deploy. The website advertises “Saleor CLI” for bootstrapping, but you’re still a developer-hours investment away from production.

Realistic time estimate for an experienced developer: half a day to local development. 1–2 days to a production-ready deployment with HTTPS, backups, and a storefront. For a team new to Python/Django deployment: budget a full week including hardening.

If deployment is the blocker, Elestio’s managed offering at $14/mo [2] is the pragmatic shortcut — you get the Saleor architecture without owning the infrastructure layer.


Pros and cons

Pros

  • BSD-3-Clause license. More permissive than GPL, allows commercial use, embedding, and reselling without the viral licensing concerns of GPL-based platforms. One codebase, no commercial edition [4].
  • True API-first design. Not “we also have an API” — GraphQL is the only interface. This produces clean, consistent architecture that holds up under parallel team development [README][3].
  • Production-proven at scale. 1 billion+ API requests per month and 400,000+ orders per month on their managed cloud [website]. This is not a hobby project.
  • Native multichannel. Per-channel pricing, stock, currencies, and product availability built into the data model — not a plugin bolted on later [README][4].
  • Extension model doesn’t break core upgrades. Apps run outside the process via webhooks. A broken app doesn’t bring down your store. Simplified upgrade paths versus Magento/WooCommerce [README][3].
  • OpenTelemetry-native observability. Real distributed tracing built in (beta) — most commerce platforms treat this as an afterthought [website].
  • OIDC integration for existing identity providers — your SSO setup doesn’t require workarounds [website].

Cons

  • Requires engineers. The homepage says it explicitly: if you’re looking for something “out of the box” or you “hate working with engineers,” Saleor is not for you [website]. A non-technical founder cannot self-host this unaided.
  • GraphQL only. No REST API. If your team or your integrations rely on REST, this is a hard stop [README][3]. The dev.to review [3] specifically raises this as a differentiation point versus Medusa (REST) and flags it as a learning curve for teams not already GraphQL-fluent.
  • Three repos to maintain in sync. API, dashboard, storefront — all separate release cycles. You own compatibility [4].
  • No visual storefront builder. Unlike Shopify’s theme editor or WooCommerce’s Elementor integrations, Saleor gives you a reference storefront and a GraphQL schema. What you build with it is entirely your problem.
  • Saleor Cloud pricing is opaque. The managed cloud option has no public pricing page — contact sales only [website]. For teams evaluating total cost of ownership, this makes comparisons harder.
  • Smaller ecosystem than WooCommerce. WooCommerce has 60,000+ plugins. Saleor has a curated app marketplace. The long tail of niche integrations requires custom webhook apps [3][5].

Who should use this / who shouldn’t

Use Saleor if:

  • You’re an engineering team building a custom storefront and you want a battle-proven commerce API rather than assembling one from scratch.
  • You’re approaching Shopify Plus territory ($100k+/mo GMV) and the per-transaction fees or per-merchant costs are eating your margin.
  • You need multi-channel, multi-currency, multi-warehouse commerce baked into the data model — not bolted on with plugins.
  • You want a BSD-3-Clause-licensed engine you can embed in your own SaaS, white-label for clients, or run on-premises for compliance reasons.
  • Your team already writes Python or is comfortable with GraphQL.

Skip it if you’re a non-technical founder:

  • Saleor itself says this [website]. If you don’t have a developer, look at Medusa (easier setup, Node.js, REST), WooCommerce (PHP, massive ecosystem, non-technical-friendly), or just Shopify Basic until your volume justifies the switch.

Skip it (pick Medusa) if:

  • You’re a solo developer who wants a self-hosted Shopify alternative with fast setup and a REST API. Medusa’s plugin model is simpler to get started with [3].

Skip it (pick WooCommerce) if:

  • Your content team manages the store and the developer is a part-time hire. WooCommerce’s admin is approachable by non-engineers. Saleor’s is not.

Skip it (stay on Shopify) if:

  • Your GMV is under $50k/month and you have no in-house developer. The SaaS tax is real but it’s cheaper than the engineering cost of running Saleor.

Alternatives worth considering

From the review sources and the merged profile’s category context:

  • Medusa — Node.js, MIT license, REST API, monorepo plugin architecture. Easier to set up solo, less mature at enterprise scale [3][5]. The head-to-head in the dev.to review [3] is the most useful comparison.
  • WooCommerce — PHP, 60k+ plugins, massive ecosystem, non-technical-friendly admin. The right tool for content-driven stores with a WordPress site already in place. Not the right tool for high-traffic, API-first commerce [5].
  • PrestaShop — PHP, large community, strong in European markets. More traditional monolith than Saleor. Listed as a self-host option in the WooCommerce alternatives guide [5].
  • Shopify — The incumbent SaaS platform. Zero setup, massive app store, best-in-class non-technical admin. Expensive at scale, closed source, no self-host option [5].
  • Vendure — Node.js/TypeScript, GraphQL-first like Saleor, plugin architecture. Smaller community but a closer technical analogue if your team runs TypeScript rather than Python. Not covered in the source articles but worth a direct comparison.
  • Your Next Store — Managed SaaS + open-source storefront combination, positioned explicitly at WooCommerce refugees in the 2026 alternatives guide [5]. Simpler onboarding than Saleor.

For engineering teams choosing between GraphQL-first headless platforms, the realistic shortlist is Saleor vs Medusa vs Vendure. Pick Saleor if you need Python, enterprise scale, and the most mature multi-channel data model. Pick Medusa if you need Node.js and REST. Pick Vendure if you want TypeScript GraphQL with a plugin system.


Bottom line

Saleor is the most technically honest headless commerce platform in the open-source space, and that honesty extends to who it’s for. It does not pretend to be a Shopify replacement for a solo founder. It’s a programmable commerce API for engineering teams who have outgrown platform constraints — the Shopify Plus bills, the WooCommerce plugin sprawl, the inability to override checkout logic, the locked data models. At 22,709 GitHub stars, BSD-3-Clause license, and 1 billion requests per month on their cloud infrastructure, it’s neither a side project nor an experiment [website][4]. The trade-offs are equally real: you need developers, you’re maintaining three separate service repos, and you’re writing your own storefront. If those trade-offs don’t land as reasonable for your situation, they’re not bugs — Saleor lists them as features [website]. For the right engineering team at the right scale, Saleor’s pricing math versus Shopify Plus is obvious. For everyone else, there’s a shorter path.


Sources

  1. AlanKesselmann on r/webdev“Web devs - which is the best self-hosted e-commerce platform in terms of extendability, ease of use and dev experience?” — reddit.com. https://www.reddit.com/r/webdev/comments/11l0tgr/web_devs_which_is_the_best_selfhosted_ecommerce/

  2. Elestio“Managed Saleor as a Service” — elest.io. https://elest.io/open-source/saleor

  3. citizengovind, DEV Community“Review: Saleor vs Medusa Two Opensource Headless Ecommerce Platforms” — dev.to. https://dev.to/citizengovind/review-saleor-vs-medusa-two-opensource-headless-ecommerce-platforms-2h4b

  4. LibreSelfhosted“Saleor project” — libreselfhosted.com. https://libreselfhosted.com/project/saleor/

  5. Jakub Neander, Your Next Store“WooCommerce Alternatives 2026: Faster, Cheaper, AI-Native” — yournextstore.com. https://yournextstore.com/blog/woocommerce-alternatives

Primary sources:

Features

Integrations & APIs

  • Plugin / Extension System
  • REST API
  • Webhooks

Analytics & Reporting

  • Dashboard

Localization & Accessibility

  • Multi-Language / i18n

E-Commerce & Payments

  • Multi-Currency