Skip to content

Repository files navigation

Vendure logo

Vendure Public Demo

A resettable public demo built on the open-source headless commerce platform.

Plugin-first, TypeScript end to end: a Node.js, NestJS, and GraphQL backend with a React and TanStack admin dashboard.

Vendure is released under the GPLv3 license. Follow @vendure_io Join our Discord PRs welcome.

What is Vendure?

Vendure is an open-source headless commerce platform for building catalog, order, pricing, promotion, customer, and channel workflows on a customizable TypeScript backend.

  • Plugin-first architecture: Extend the platform with plugins, custom entities, service overrides, and API extensions without forking Vendure core.
  • One backend, every channel: Serve storefronts, marketplaces, B2B flows, and operations tooling from the same GraphQL API.
  • TypeScript end to end: Build on Node.js, NestJS, GraphQL, and the React and TanStack based Vendure Dashboard.
  • Commerce primitives included: Products, variants, orders, customers, channels, tax, shipping, payments, promotions, stock, and assets are available out of the box.

About this demo

This repository contains the project used as the basis for the public shared Vendure demo. It follows the Vendure 3.7 CLI project layout and includes the server, worker, Dashboard, static assets, email templates, seed data, and reset workflow needed to keep the demo instance fresh.

The reset flow is handled by src/prepare-server.ts and src/reset-server.ts. The npm run prepare:demo script populates the server with Vendure's populate helper, caches the pristine generated data, and restores that cached data when the demo needs to be reset.

Running locally

Install dependencies first:

npm ci

Start the server, worker, and Dashboard together:

npm run dev

npm run dev runs npm run prepare:demo before starting Vendure, so the database and demo assets are prepared automatically.

The demo tenant modes are also available:

npm run dev:readonly
npm run dev:public

Build and run the compiled project:

npm run build
npm run start

npm run start runs npm run prepare:demo:prod before starting the compiled server, worker, and Dashboard.

Project commands

The project exposes the Vendure lifecycle commands through npm scripts:

npm run dev:server
npm run dev:worker
npm run dev:dashboard
npm run build:server
npm run build:worker
npm run build:dashboard
npm run start:server
npm run start:worker
npm run doctor

Run npm run doctor -- --format json when changing project setup or dependencies.

Running in Docker

Build the demo image:

docker build -t vendure-demo .

Run the container:

docker run --name vendure -p 3000:3000 -d vendure-demo

The container runs npm run start, which prepares the demo data before starting Vendure.

Learn more

About

A dockerized demo project showcasing the Vendure server

Resources

Stars

41 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages