The Complete Vendure Guide — TypeScript Headless Commerce 2026
Vendure is a TypeScript, GraphQL-first headless commerce framework on NestJS — plugin-driven, admin UI included, and built for developers who want to own their stack.
Vendure is an open-source, TypeScript-first headless commerce framework built on NestJS, with a GraphQL API and an admin UI included out of the box. For developer teams that want type-safety end to end and a clean plugin architecture to extend, Vendure sits alongside Medusa and Saleor as a serious self-hosted option — distinguished by its NestJS foundation and GraphQL-first design. This guide covers what Vendure is, how it is built, and when to choose it.
Search intent: informational with decision intent — developers evaluating Vendure as a headless commerce backend. We cover the architecture, the plugin system, the storefront approach, how Vendure compares to Medusa, and when it fits. It builds on our Medusa JS and Saleor vs Medusa guides.
What Vendure Is and How It’s Built
Vendure is built on NestJS — the structured, opinionated Node.js framework (see the NestJS site) — with TypeORM for data and a GraphQL API as the primary interface. It ships two GraphQL APIs (Shop API for storefronts, Admin API for management) and a React-based admin UI included, so you get a working back office immediately. The NestJS foundation gives Vendure a clean, modular, dependency-injected architecture that developers from an Angular or enterprise-Node background find familiar. PostgreSQL or MySQL back it, with the standard self-hosted infrastructure expectations.
Vendure: The Plugin System and Storefront
Extensibility in Vendure is plugin-driven and is its defining strength. A Vendure plugin can extend the GraphQL schema, add database entities, define custom logic, register admin UI extensions and hook into the event system — all in TypeScript with full type-safety. Payments, shipping, search and custom business logic are added as plugins, keeping the core clean. For the storefront, Vendure is fully headless — you build in Next.js, Remix, Astro or any framework against the Shop API, and the project provides storefront starters to begin from. The Vendure documentation covers the plugin API and the Vendure source shows the architecture.
Vendure vs Medusa and When to Choose It
Since both are TypeScript headless platforms, Vendure vs Medusa is a common question. Vendure is GraphQL-first on NestJS with a strongly-typed plugin system; Medusa is REST-first with a modular swap-able architecture. Teams that prefer GraphQL end-to-end and NestJS’s structured, opinionated style gravitate to Vendure; teams wanting REST simplicity and module swapping lean Medusa. Choose Vendure when you want a TypeScript, GraphQL-first commerce backend with strong typing, a clean plugin model and an included admin UI, and you have the team to self-host. Both are excellent; the pick is API style (GraphQL vs REST) and architectural taste (NestJS structure vs Medusa modularity). Our commerce engineering team builds on Vendure and its peers.
| Aspect | Vendure | Medusa |
|---|---|---|
| Foundation | NestJS (structured) | Modular core |
| API style | GraphQL-first | REST-first |
| Extension model | Typed plugins | Swappable modules |
| Admin UI | Included (React) | Included (React) |
| Best for | GraphQL + NestJS teams | REST + module-swap teams |
What we have learned working with Vendure
The NestJS foundation is a real productivity win for the right team. Developers from an Angular or structured-Node background are immediately at home — dependency injection, modules and decorators are familiar. For teams without that background, the structure has a short learning curve but pays off in maintainability.
The plugin system keeps customisation clean. Because everything extends through typed plugins, customisations stay isolated from the core, which makes upgrades far less painful than platforms where you patch core code. We build all client-specific logic as Vendure plugins for this reason.
GraphQL-first is the deciding factor versus Medusa. When a client’s team strongly prefers GraphQL and end-to-end typing, Vendure is the natural pick over REST-first Medusa. When they prefer REST and module swapping, Medusa wins. We let API philosophy and team taste decide, since both are production-grade.
Frequently Asked Questions About Vendure
What is Vendure?
Vendure is an open-source, TypeScript-first headless commerce framework built on NestJS, with a GraphQL API and a React admin UI included. It is plugin-driven and self-hosted, aimed at developer teams who want type-safety end to end and a clean architecture to extend their commerce backend.
Is Vendure free and open source?
Yes. Vendure is MIT-licensed open source and self-hosted, with no platform or transaction fees. Your costs are hosting (PostgreSQL or MySQL, plus servers) and the engineering to build and operate it — the same model as other self-hosted headless platforms like Medusa and Saleor.
What is Vendure built on?
Vendure is built on NestJS (a structured Node.js framework) with TypeORM for data access and GraphQL as its primary API. It runs on PostgreSQL or MySQL and ships with a React-based admin UI. The NestJS foundation gives it a modular, dependency-injected architecture familiar to enterprise-Node developers.
How do Vendure plugins work?
Vendure plugins extend the platform in TypeScript — adding to the GraphQL schema, defining database entities, registering admin UI extensions, and hooking into the event system. Payments, shipping, search and custom logic are added as plugins, keeping the core clean and making upgrades far easier than patching core code.
Vendure vs Medusa — which is better?
Neither is universally better. Vendure is GraphQL-first on NestJS with a typed plugin system; Medusa is REST-first with swappable modules. Choose Vendure for GraphQL end-to-end and NestJS structure; choose Medusa for REST simplicity and module swapping. Both are production-grade TypeScript platforms — pick by API style and team taste.
What storefront do you use with Vendure?
Any. Vendure is fully headless — you build the storefront in Next.js, Remix, Astro or any framework against its GraphQL Shop API, and the project provides storefront starters to begin from. The frontend is decoupled, so you choose the framework that fits your team.
Building on Vendure?
Our team builds Vendure commerce backends — typed plugins, GraphQL APIs, custom storefronts and deployment.