vendurehq/vendure
Open source headless commerce framework built with TypeScript, NestJS, React and GraphQL
Website · Documentation · Pricing · Blog · Discord
Vendure is a commerce backend that engineering teams can change at the core. Model the catalog, orders, pricing, promotions and customers the way your business works, and serve B2B, D2C, marketplace and omnichannel sales from one GraphQL API.
Scaffold a project with the server, worker, admin dashboard and GraphQL APIs ready to run:
npx @vendure/create my-shop
Requires Node.js 22.12+ (20.19+ still runs, but Node.js 20 is end-of-life) and a SQL database (PostgreSQL, MySQL, MariaDB or SQLite). The getting started guide covers configuration, seed data and your first plugin. Ask questions on our Discord.
Vendure runs anywhere Node.js runs, including Docker, Kubernetes, a single VM or any cloud provider. Self-hosting is free, and your data stays in your own database. See the deployment guides.
Vendure Cloud is the managed runtime for Vendure. It deploys on git push, creates a preview environment for every pull request, and manages the database, queues, search, backups and scaling. It runs the same application you can self-host, so you can move to Cloud without rebuilding it. Every paid plan includes Cloud at no extra cost. Cloud is in design-partner preview now, with general availability planned for Q1 2027.
Plugins let you extend or replace any of the features below.
| Feature | What it covers |
|---|---|
| Catalog | Products, variants, facets, collections and custom fields on any entity |
| Orders | Carts, draft orders, modifications, fulfillment and returns |
| Stock | Multi-location inventory, allocation and backorders |
| Promotions | Conditions and actions you compose, or write your own |
| Payments | Provider-agnostic payment and shipping integrations |
| Channels | Multi-channel, multi-region, multi-currency and multi-language from one instance |
| Plugins | Extend or override any service, entity or strategy without forking the core |
| GraphQL APIs | Typed Shop and Admin APIs that you can extend. Agent frameworks and MCP servers can read the schema through introspection |
| Dashboard | React and TanStack admin app, extensible with your own pages and form elements |
| TypeScript API | Typed reference docs for every service, strategy and event |
Vendure has four paid plans built on top of this repository: Starter, Growth, Scale and Enterprise. They add B2B features such as company accounts, quotes, contract pricing, account hierarchies, approvals, single sign-on and audit logs. Every paid plan also includes direct support from the Vendure team, a commercial license and Vendure Cloud at no extra cost. See plans and pricing.
This is the Vendure source monorepo: the @vendure/core framework, the React and TanStack admin dashboard, the CLI, the official plugins, and an e2e testing harness. To build with Vendure, run npx @vendure/create (see Getting started) rather than cloning; clone this repo only to contribute to Vendure itself.
Contributions are welcome: bugs, features, or docs. Our Contribution Guide covers everything from setting up your development environment to submitting your first pull request.
Pick up a labelled issue as a good first contribution.
To report a suspected security vulnerability, use GitHub's private vulnerability reporting. Do not disclose security vulnerabilities through public GitHub issues or email. See our security policy for details.
Patch releases ship regularly. Check our release notes to keep up to date.
Vendure is open source under the GPLv3 license. Building against the GraphQL API doesn't make your storefront or services subject to GPLv3, and a plugin license exception lets you release your own Vendure plugins under any license you choose (see the licensing FAQ). Every paid plan includes a commercial license. See pricing.
Need help getting your build to production? Our team offers professional services: architecture review, implementation support, and launch readiness from the people who build Vendure.
No tracked packages depend on this.