Site builders#Ecommerce

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
Repositorygithub.com/saleor/saleor
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.