ConfigsApr 10, 2026·3 min read

Vendure — Open Source Headless E-Commerce Framework

Vendure is a headless commerce framework built with TypeScript, NestJS, and GraphQL. Extensible plugin system, multi-channel support, and full API-first architecture.

TL;DR
Vendure provides a plugin-based, API-first e-commerce backend using TypeScript, NestJS, and GraphQL.
§01

What it is

Vendure is an open-source headless commerce framework built with TypeScript, NestJS, and GraphQL. It provides the full backend for e-commerce: products, orders, payments, fulfillment, shipping, and tax, exposed through a GraphQL API so any frontend can consume it.

Vendure targets developers and teams building custom storefronts with React, Next.js, Vue, or any frontend framework who need a flexible commerce engine without vendor lock-in.

§02

How it saves time or tokens

Vendure removes the need to build commerce primitives from scratch. Its plugin system means you add payment gateways (Stripe, PayPal, Mollie), search (Elasticsearch), and custom business logic without modifying core code. The Admin UI ships ready-made, so back-office operations work on day one. Multi-channel support lets you run web, mobile, and POS from a single backend instance.

§03

How to use

  1. Scaffold a new project with the CLI:
npx @vendure/create my-shop
cd my-shop
npm run dev
  1. Open the admin panel at http://localhost:3000/admin and log in with superadmin / superadmin.
  1. Configure products, shipping methods, and payment integrations through the admin UI or programmatically via the GraphQL API.
§04

Example

Querying products from the storefront GraphQL API:

query {
  products(options: { take: 10 }) {
    items {
      id
      name
      slug
      variants {
        price
        currencyCode
        stockLevel
      }
      featuredAsset {
        preview
      }
    }
  }
}

Creating a custom plugin:

import { VendurePlugin, PluginCommonModule } from '@vendure/core';

@VendurePlugin({
  imports: [PluginCommonModule],
  providers: [],
  configuration: config => {
    // modify server config here
    return config;
  },
})
export class MyCustomPlugin {}
§05

Related on TokRepo

§06

Common pitfalls

  • Running npx @vendure/create without Node 18+ causes silent failures in dependency resolution
  • Vendure uses TypeORM under the hood; complex queries may need raw SQL or custom resolvers instead of relying solely on the built-in list queries
  • The default SQLite database is for development only; production deployments should use PostgreSQL or MySQL for data integrity and performance

Frequently Asked Questions

What databases does Vendure support?+

Vendure uses TypeORM and officially supports PostgreSQL, MySQL, MariaDB, and SQLite. PostgreSQL is the recommended choice for production. SQLite ships as the default for quick local development but should not be used in production.

Can I use Vendure with Next.js or Nuxt?+

Yes. Vendure is headless and exposes a GraphQL API. Any frontend framework can consume it. The Vendure docs include starter projects for Next.js, Remix, and Angular. Vue/Nuxt integrations work through standard GraphQL clients like Apollo or urql.

How does the plugin system work?+

Plugins are NestJS modules decorated with @VendurePlugin. They can extend the GraphQL schema, add custom entities, register event handlers, and modify server configuration. Vendure ships official plugins for Elasticsearch, Stellate, and various payment providers.

Is Vendure suitable for multi-vendor marketplaces?+

Vendure supports multi-channel out of the box, which lets you run separate storefronts from one backend. For true multi-vendor marketplaces with independent seller accounts, you would need custom plugin development on top of the channel system.

How does Vendure handle payments?+

Vendure uses a PaymentMethod abstraction with handler functions. Official integrations exist for Stripe, PayPal, Mollie, and Braintree. You implement a PaymentMethodHandler interface to add any custom gateway, handling creation, settlement, and refund lifecycle hooks.

Citations (3)
  • Vendure GitHub— Vendure is built with TypeScript, NestJS, and GraphQL
  • Vendure Docs— Vendure plugin architecture based on NestJS modules
  • Vendure Docs— GraphQL API for storefront and admin operations
🙏

Source & Thanks

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets