mrkeyoor.com_
Sun 06 Sept 16:33 UTC
Webevaluationupdated 06 Sept 2026

saleor review

Saleor is an API-only backend for online stores, covering products, carts, orders, payments, customers, promotions, and multiple sales channels. Storefront and dashboard interfaces live in separate projects, so developers can choose their own presentation layer while Saleor owns the commerce rules.

Verdict

Our Saleor checkout installed 272 npm packages in 13 seconds, but exposed no build or test target, so that clean install does not prove the Python commerce core runs. Saleor is a strong choice for a staffed commerce team that specifically wants GraphQL, separate services, and multichannel control. A small shop or REST-first team should choose a simpler system, while self-hosters should budget for the database, cache, workers, migrations, and separate user interfaces.

We ran it

Lab card: what happened when we ran saleorScreenshot of saleor (saleor.io)
Install✓ · 13s272 packages · 69 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo4669 files~851,431 lines of source · 59.3 MB · 22 CI workflows · Dockerfile

Answers from our run

Does saleor build from source?

Dependencies installed in 13 seconds (272 packages), and the project has no separate build step. We cloned commit 0a11eb9 into a clean Debian container with 3 CPUs and no project-specific setup.

Does saleor have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does saleor have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use saleor?

Solo developers building a small, low-traffic shop: the README itself says the service-oriented approach may feel more complex than WordPress or Magento.

What are the alternatives to saleor?

Medusa, Vendure, Django Oscar. Our Saleor checkout installed 272 npm packages in 13 seconds, but exposed no build or test target, so that clean install does not prove the Python commerce core runs.

Setup2/513-second npm step; full backend needs several services
Docs4/5Clear architecture and dev path, production needs more synthesis
Community5/523,297 stars, a September push, and frequent releases
Maturity5/5Stable 3.x line with active maintenance and defined operations

Who it’s for

Commerce teams that want one GraphQL API for storefront, dashboard, and app integrations.
Companies running multiple currencies, languages, warehouses, or sales channels.
Developers comfortable splitting custom commerce logic into webhooks and independently deployed apps.
Organizations with the staff to operate a Python service, PostgreSQL, Redis, and Celery.

Who it’s NOT for

Solo developers building a small, low-traffic shop: the README itself says the service-oriented approach may feel more complex than WordPress or Magento.
Teams committed to REST: Saleor describes its public interface as GraphQL-only.
Buyers expecting the dashboard and storefront inside this repository: both are separate projects, and the all-in-one platform repository is for local development only.
Operators who require built-in Celery task and queue metrics: open issue 19739 reports that worker failures and backlog are not represented in the current metrics.
Anyone deploying directly from main: the README calls that branch potentially unstable and tells production users to choose a release tag.

Setup reality

Our sandbox classified the checkout as Node/npm and installed 272 packages in 13 seconds, using 69 MB. It found no build or test script, so both steps were skipped. Npm audit reported 0 known vulnerabilities. That result covers the repository's Node tooling, not a running Saleor backend.

Local backend development requires Python 3.12, uv, libmagic, environment variables, a database, cache, dashboard, and mail service. The contribution guide starts those supporting services with Docker Compose, then runs migrations and sample-data commands. A useful setup also starts the Celery worker and, when needed, its scheduler.

The README says main may be unstable and directs production users to a 3.x release. Saleor Platform groups the API, dashboard, database, cache, tracing, and test mail for development, but its own README says not to deploy that stack in production. Self-hosters must design the production topology themselves.

Saleor 3.x is a commerce backend, not a complete shop in one repository

Saleor 3.x puts product catalogs, carts, orders, customers, promotions, payments, translations, and channel-specific inventory behind GraphQL. The API-only design lets a storefront, dashboard, or business application use the same commerce rules. Multichannel controls reach pricing, currencies, stock, and products, which is useful when one company sells across regions or brands. The BSD-3-Clause license permits commercial use, and the README says the open version is not divided into paid feature tiers.

That freedom comes with a wide codebase. Our checkout contained 4,669 files, about 851,431 lines of source, and occupied 59.3 MB before installation. The dashboard and example storefront live in separate repositories, so this core does not give a shopper or merchant a usable screen by itself. Saleor Platform assembles the API, dashboard, database, cache, tracing, and test email service for local work. Its README explicitly says that combined stack is not meant for production deployment.

The 3-component split favors staffed commerce teams

The README names 3 production components: Saleor core, the dashboard, and the storefront. Custom behavior runs through apps, webhooks, metadata, subscription queries, API extensions, or dashboard iframes. Deploying extensions separately can isolate failures and let each service scale on its own. It also turns a checkout rule or payment connection into another deployable unit, with its own authentication, monitoring, and release process. That is a sensible trade for a company that changes commerce logic often.

A competent solo developer may still walk away. The project says the service-oriented approach can feel more complex for a small business without high traffic or round-the-clock availability needs. Our 13-second npm install added 272 packages, yet it did not assemble those 3 components or start a store. WordPress, a hosted platform, or a framework kept inside one application can be easier to own when separate scaling and daily backend deployments solve problems the business does not have.

What happened when we ran it

Our sandbox run at commit 0a11eb9 installed 272 npm packages in 13 seconds and used 69 MB on disk. The fresh Debian container had 3 CPUs and 8 GB of RAM, with no secrets. Npm audit reported 0 known vulnerabilities across the installed packages. Installation therefore succeeded for the Node/npm surface detected by the harness, and the log did not report a package failure.

The next steps did not run. There was no build script or target, so the harness skipped the build. There was also no test script or target, so it skipped tests rather than recording a pass or failure. The repository signal scan counted 22 CI workflow files and a Dockerfile, but no top-level tests directory. Saleor's contribution guide separately documents pytest suites inside application folders; our measurement does not provide a result for those Python tests.

The distinction matters more here than it would in a small Node package. GitHub identifies Python as the primary language, and the development guide uses uv, Django commands, PostgreSQL-backed migrations, and Celery processes. A successful 13-second npm step is useful evidence about release or support tooling, but it is not evidence that checkout, payment, or order behavior worked. Buyers should demand their own end-to-end store test before treating the sandbox result as deployment proof.

Python 3.12 development needs supporting services and configuration

The current contribution path specifies Python 3.12 and starts the database, dashboard, cache, and Mailpit with Docker Compose. Developers then run uv sync, create a .env file from the example, apply migrations, and populate sample data. The API starts separately from the Celery worker and optional scheduler. Libmagic is another named prerequisite. None of that is unusual for a mature Django system, but it is materially more work than installing the 272 npm packages our harness saw.

Hosted Saleor Cloud avoids much of that local operations burden and is the README's fastest route to development. Self-hosting shifts the decisions back to the team: database backups, Redis availability, worker supervision, object storage, email, payment credentials, webhook delivery, and secret rotation all sit around the core. Saleor Platform can teach the service relationships, yet its local-only warning means operators cannot treat its Compose file as a ready production architecture.

September 2026 activity is strong, with 249 issues and PRs to sort

GitHub showed 23,297 stars and 249 combined open issues and pull requests when fetched. The last push was September 4, 2026, and release 3.23.31 arrived on September 2. Four other releases appeared between August 20 and September 1. Those dates point to active maintenance rather than a repository living on reputation. The combined open count is not a defect count, so it should be read as workload and participation, not as 249 known bugs.

Current issue activity still reveals operational gaps worth testing. Issue 19739 reports that Celery task execution, failures, and queue depth are absent from the metrics, which could hide a worker outage while the HTTP API stays healthy. Issue 19429 asks for translated product-media alt text because the field currently has one global value. Neither report cancels Saleor's broad commerce coverage. Both show why a serious evaluation should map required observability and localization behavior against the exact 3.x release.

The 13-second install earns a trial, not a production shortcut

Saleor makes the most sense when GraphQL is a deliberate platform choice and a team can own separate storefront, dashboard, worker, data, and integration services. Its active 3.x release line and wide commerce model justify a proof of concept for multichannel or frequently changing businesses. Our run leaves one large question open because no build or tests ran: the buyer still has to validate the Python system and a representative checkout flow. Smaller teams should value the README's warning and choose less architecture unless they need what that architecture buys.

Alternatives

ProjectWhat it isPick it when
Medusa gh↗A modular JavaScript commerce backend with an admin application and package ecosystem.pick this instead when your team wants a JavaScript-first backend and a module system rather than Saleor's Python and GraphQL core.
VendureA TypeScript headless commerce platform built around GraphQL and plugins.pick this instead when GraphQL suits the project but your team wants TypeScript and an in-process plugin model.
Django OscarA Django commerce framework designed for developers who want to customize the application in Python.pick this instead when a Django framework you extend directly is preferable to an API-only service split.

What people are saying

  1. [velocity-scout] saleor/saleor

Sources

  1. Saleor repository and README
  2. Saleor contributing guide
  3. Saleor 3.23.31 release
  4. Saleor Platform local development README
  5. Celery worker metrics issue 19739
  6. Product media alt translation issue 19429

More web reviews

uni-app · motion · uppy · Libraries.dev · FckSignups · mantine · the whole board →