Saleor: a GraphQL-native headless commerce backend
Saleor is an open-source commerce backend that speaks only GraphQL: products, orders and payment orchestration behind one schema, with any frontend on top.
Project facts
GitHub Ecosystem- License
- BSD-3-Clause
- Language
- Python
- Stars
- 23,441
- Data checked
- 2026-10-15
Snapshot figures reflect the check date and may change over time.
Taking an “build me a store” contract means deciding where the backend stops and who owns the frontend. Saleor is an open-source commerce backend (Python, BSD-3-Clause, about 23.4k stars as of 2026-10-15) that exposes only a GraphQL API: products, orders, payments and promotions all live behind one schema, while the storefront — framework and all — is yours to choose.
Core features
- GraphQL only: one interface, no parallel REST surface to keep in sync; the type system is the contract.
- Headless and API-only: configuration, extension and operations all happen through the API. The Dashboard is a separate frontend project (saleor-dashboard), and the storefront is your choice too.
- Channels as a first-class model: pricing, currency, stock and product availability are controlled per channel, so one backend runs multiple markets without multiple instances.
- Apps instead of plugins: webhooks, sync and async events, subscription queries, metadata, and dashboard iframes. Apps deploy and scale independently, and upgrades stop being a plugin-compatibility exercise.
- A complete commerce model: products with a CMS, a flexible order model (split payments, multi-warehouse, returns), customers, a promotion engine (cart rules, vouchers, gift cards) and payment orchestration across gateways.
- Docs, cloud and self-host side by side: the official cloud at cloud.saleor.io and self-hosting both exist, and the README states there is a single version with no commercial feature stripping.
Typical use cases
- A developer building a cross-border store: a custom Next.js or Nuxt checkout on the front, Saleor managing orders and stock behind it, with one GraphQL round trip filling a checkout page.
- A brand running multiple markets: one channel per market isolates pricing, currency and stock — cheaper than maintaining several backends.
- A team with a design system and deep checkout requirements: headless means no template ceiling, and the cost is that all the front-end work is yours.
Quick start
Self-hosting starts from Docker Compose with environment-specific steps in the official docs. To see the API shape first, the fastest path is a cloud.saleor.io trial and its GraphQL playground:
query {
products(first: 5, channel: "default-channel") {
edges {
node {
id
name
pricing {
priceRange {
start {
gross {
amount
currency
}
}
}
}
}
}
}
}
For a storefront from scratch: pick a framework, wire it to Saleor's GraphQL and Storefront API, and run checkout, payment and order lookups against the same schema. The Dashboard can start as the official saleor-dashboard.
## Summary
For teams that need full control of the frontend and a commerce backend with nothing stripped out — and for developers picking up store work. It is not the quick-launch option: the README names the tradeoff itself — a single developer, low traffic and no 24/7 requirement make a service-oriented architecture heavier than the WordPress or Magento style of "working out of the box". Python, BSD-3-Clause, 23,441 stars as of 2026-10-15 with pushes the same day — development is active.
Medusa is the other open-source headless option in this space ("saleor vs medusa" is a real search variant); if what you need is a blog with a paywall rather than a full transaction pipeline, [Ghost](/en/github/ghost/) is the lighter tool.