mrkeyoor.com_
Sat 17 Oct 13:34 UTC
Self-Hostedevaluationupdated 26 Aug 2026

evershop review

EverShop is a self-hosted ecommerce platform built with TypeScript, React, GraphQL, and PostgreSQL. It supplies a storefront, admin panel, checkout, catalog, content tools, shipping, and an extension system for developers building a custom shop.

+7stars / 7d
Verdict

Our EverShop source run installed 1,406 packages, then both build and test commands failed because expected compiled files were absent, while npm audit reported 30 known vulnerabilities. The Docker demo is still worth a trial for a TypeScript team that wants a full store and accepts GPL-3.0, but source contributors need to document and verify the compile order before committing. Do not launch a revenue store until checkout, migrations, backups, security advisories, and HEAD-based monitoring are tested on the exact release.

We ran it

Lab card: what happened when we ran evershopScreenshot of evershop (evershop.io)
Install✓ · 95s1406 packages · 606 MB
Build✗ · 10s
Tests✗ · 12sran, no count parsed
Known vulns300 critical · 11 high · 18 moderate · 1 low (npm audit)
Repo2890 files~217,604 lines of source · 27.9 MB · 2 CI workflows · Dockerfile · tests dir

Answers from our run

Does evershop build from source?

Dependencies installed in 95 seconds (1406 packages), and the build failed. We cloned commit 770c47b into a clean Debian container with 3 CPUs and no project-specific setup.

Do evershop's tests pass?

No. The project's own test command exited unsuccessfully after 12 seconds, and its output did not expose an individual test count.

Does evershop have known vulnerabilities in its dependencies?

npm audit flagged 30 known advisories in the dependency tree at the time of our run.

Who should not use evershop?

Teams expecting the source checkout to build immediately after npm install: our build could not find packages/evershop/dist/bin/build/index.js, and the README only presents the Docker quick start.

What are the alternatives to evershop?

Saleor, Medusa, Vendure. Our EverShop source run installed 1,406 packages, then both build and test commands failed because expected compiled files were absent, while npm audit reported 30 known vulnerabilities.

Setup2/5Docker is short; the measured source build and tests both failed
Docs3/5Product guides exist, but source build order is unclear in README
Community4/510,424 stars and current release work with 73 issues and PRs
Maturity3/5Broad commerce scope, offset by failed checks and 30 advisories

Discussed on

  1. hnEverShop: Open-Source, Self-hosted, Node.js E-commerce Platform4 points

Who it’s for

TypeScript teams that want to own a store's code, database, themes, and extensions.
Merchants whose developers can operate PostgreSQL, backups, upgrades, and payment integrations.
Projects that need GraphQL, custom fields, multiple languages, or a visual page builder in one platform.
Teams comfortable adopting GPL-3.0 software and testing every commerce path before launch.

Who it’s NOT for

Teams expecting the source checkout to build immediately after npm install: our build could not find packages/evershop/dist/bin/build/index.js, and the README only presents the Docker quick start.
Shops requiring a clean dependency audit before evaluation: our npm audit found 30 known vulnerabilities, including 11 high-severity findings.
Operators who rely on HEAD for monitoring or cache checks without a workaround: open issue 935 reports existing GET routes returning 404 to HEAD requests.
Stores that cannot absorb a large upgrade migration: v2.2.1 runs 31 database migrations and documents breaking changes across React, shipping, fulfillment, widgets, navigation, and configuration.
Businesses unwilling to meet GPL-3.0 obligations for modified or distributed software.

Setup reality

Our sandbox installed 1,406 npm packages in 95 seconds and used 606 MB on disk. The build failed after 10 seconds because Node could not find packages/evershop/dist/bin/build/index.js. Tests failed after 12 seconds because Jest found no files matching its dist test path.

The README's quick path uses Docker Compose with an EverShop image and PostgreSQL 16. A real store also needs persistent database storage, an admin user, domain and TLS configuration, payments, email, file storage, and backups.

The source workflow has a separate compile script, but the measured build command did not invoke it successfully. Npm audit reported 30 known vulnerabilities: 11 high, 18 moderate, and 1 low. Version 2.2.1 applies 31 migrations on first start.

EverShop bundles storefront and administration in TypeScript

EverShop combines a React storefront, admin interface, GraphQL API, PostgreSQL data model, themes, and extensions. Version 2.2.1 adds a visual page builder, blog, custom fields, multiple storefront languages, translated administration, shipping providers, multiple shipments, cloud file storage, and product recommendations. That is enough surface to build a serious shop without assembling every catalog and content screen separately.

A broad platform also creates coupling. The latest release moves the whole framework to React 19, changes shipping tables and APIs, converts fulfillment from one shipment to many, replaces widget storage, and moves several configuration values into admin settings. Its upgrade notes call for 31 automatic database migrations across 10 modules. Extension authors must read the full migration document before treating a minor-looking tag change as routine.

The Docker quick start hides a broken source sequence

The README's installation section is 2 commands: download docker-compose.yml, then run docker compose up -d. That file starts the latest EverShop image alongside PostgreSQL 16, exposes the application on port 3000, publishes PostgreSQL on port 5432, and persists database data in a named volume. It is a reasonable demo route, though the sample database password is postgres and must not survive into an exposed deployment.

Source setup is less clear. The root package has separate compile, build, and test scripts, while build directly executes a file under packages/evershop/dist. The README does not explain their required order because it points developers to the external installation guide. Our measured sequence installed dependencies and then called the declared build command, which failed before application compilation could proceed.

What happened when we ran it

Our sandbox installed 1,406 npm packages in 95 seconds and used 606 MB. The checkout at commit 770c47b contained 2,890 files, about 217,604 lines of source, and occupied 27.9 MB. Installation succeeded, but the build stopped after 10 seconds with exit code 1 because Node could not find /work/repo/packages/evershop/dist/bin/build/index.js.

Tests also ended with exit code 1 after 12 seconds. Jest checked 143 files and found zero matches for **/dist/**/tests/**/unit/**/*.test.[jt]s. The log does not say why compiled test files were missing, so we cannot claim that running compile first fixes the suite. The repository did include a tests directory, a Dockerfile, a Compose file, 2 CI workflows, and npm workspaces.

Npm audit reported 30 known vulnerabilities: 0 critical, 11 high, 18 moderate, and 1 low. That count describes the installed dependency tree in our sandbox, not necessarily exploitable paths in a deployed shop. Ecommerce handles identities, addresses, orders, and payment handoffs, so every high-severity advisory needs an applicability decision before production rather than dismissal as development-only noise.

Version 2.2.1 requires an upgrade rehearsal

The August 12, 2026 release is the largest since 2.0 according to its notes. Thirty-one migrations run automatically on first start. React 17 extension code must move to React 19 APIs, legacy shipping tables are dropped after migration, shipment relationships change, and direct SQL against the former widget table breaks. A logo config key is removed completely, requiring an upload through administration after upgrade.

Those changes are manageable with a staging copy and a rollback plan. Test an export of the current database, time the 31 migrations on a production-sized copy, and exercise payment, tax, shipping, refunds, locale URLs, image storage, and every custom extension. Automatic migrations reduce typing; they do not replace a reversible release process for a store that accepts orders continuously.

Built-in commerce breadth reduces extension shopping

EverShop 2.2.1 includes a page builder with drafts and scheduled publishing, a blog, typed metafields, 17 translated admin locales, and cloud storage for S3, Azure Blob, and Google Cloud Storage. Shipping providers can quote rates, carriers can create labels, and one order can split into several packages. Recommendations cover related products, co-purchase suggestions, upsells, and cart cross-sells.

This is the project's best argument. A TypeScript team can change themes and modules while keeping catalog, content, and operations in one codebase. The counterweight is verification effort across those features. A shop may use only 4 of the 17 locales and one shipping provider, yet upgrades still touch shared framework code. Decide using a representative catalog and checkout flow, not the polished demo credentials in the README.

Open HEAD behavior can confuse monitors and caches

Open issue 935 reports that HEAD requests fall through to a 404 when the route declares only GET, even though a normal GET succeeds. The report reproduces this on storefront pages, product assets, APIs, and extension routes. It specifically calls out uptime monitors, link checkers, browser prefetch, and cache revalidation, all of which may probe with HEAD to avoid transferring a response body.

That is a deployment concern rather than a cosmetic protocol detail. Before selecting a monitor or CDN rule, send both GET and HEAD to storefront pages, images, sitemap files, and health endpoints. If the chosen EverShop version still behaves as reported, use an explicit health route or proxy handling and document it. Do not let a 404 from a HEAD-only probe wake operators for a healthy storefront.

Current release activity does not settle security readiness

GitHub reported 10,424 stars, 73 combined issues and pull requests, and a last push on August 24, 2026. Version 2.2.1 was released 12 days earlier and its notes describe security fixes and rate limiting. An open issue also tracks CVE-2025-12919 concerning order-data authorization. The open state alone does not prove the current release remains vulnerable, so deployment review should confirm the patched code and advisory status directly.

EverShop offers much more than a storefront starter, and its GPL-3.0 license gives developers source access with obligations they must understand. The measured source path is the current warning: 606 MB of dependencies led to missing build output, zero discovered tests, and 30 audit findings. Trial the Docker image, then require a clean, documented source build and a security review before making it the system that holds customer orders.

Alternatives

ProjectWhat it isPick it when
Saleor gh↗A GraphQL-first commerce platform with a Python core and headless architecture.pick this instead when a mature headless GraphQL backend matters more than a TypeScript-only stack.
Medusa gh↗A modular commerce platform for composing custom backend workflows and storefronts.pick this instead when backend modules and headless composition matter more than a bundled storefront and page builder.
VendureA TypeScript and GraphQL commerce framework with plugins and an admin dashboard.pick this instead when you want another TypeScript-first option with a plugin-centered backend.

What people are saying

  1. [github-trending] evershopcommerce/evershop

Sources

  1. EverShop README
  2. EverShop repository
  3. EverShop v2.2.1 release
  4. Issue 935: HEAD requests return 404
  5. Issue 881: order information authorization advisory

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →