The headless commerce framework that gets out of your way.
TypeScript • NestJS • GraphQL • React Admin • 32+ Plugins
Most commerce platforms force you into their way of doing things. Deenruv doesn't. It gives you a production-ready e-commerce backend with a GraphQL API, a modern React admin panel, and a plugin system that lets you extend everything — without fighting the framework.
Built on NestJS and TypeORM, battle-tested in production, and fully open-source.
- GraphQL-first — Shop API + Admin API, fully typed, ready for any frontend
- Plugin architecture — 32+ official plugins, or build your own in minutes
- Modern admin panel — React, Tailwind CSS, extensible via plugins with a full UI SDK
- Multi-channel & multi-language — sell everywhere, in every language
- Production-ready — role-based access control, job queues, event-driven emails, asset management
- TypeScript end-to-end — from database entities to admin UI components
# Prerequisites: Node.js >= 18, pnpm, Docker
pnpm install # Install dependencies
pnpm server-docker-up # Start Postgres, Redis, MinIO
pnpm build # Build all packages
pnpm server-populate # Seed with sample data
pnpm start # Launch server + admin panelThen open:
| Admin Panel | localhost:6101/admin-ui |
| Admin GraphQL API | localhost:6100/admin-api |
| Shop GraphQL API | localhost:6100/shop-api |
| Login | superadmin / superadmin |
Every feature is a plugin. Use the official ones, or create your own:
| Plugin | What it does |
|---|---|
| payments | Stripe, Mollie, Przelewy24 + BLIK |
| Event-driven transactional emails | |
| asset-server | File uploads, image transforms, S3/MinIO |
| elasticsearch | Full-text product search |
| job-queue | Background jobs with BullMQ/PubSub |
| reviews | Product reviews and ratings |
| seo | SEO metadata management |
| inpost | InPost shipping integration |
| cronjobs | Scheduled tasks |
| harden | Security hardening for production |
| sentry | Error tracking |
| merchant | Multi-merchant product feeds (Google/Facebook) |
| dashboard-widgets | Custom admin dashboard widgets |
| newsletter | Newsletter subscriptions |
| upsell | Cross-sell and upsell suggestions |
| ...and 17 more |
Each plugin can extend both the server and the admin UI:
plugins/my-plugin/
├── src/
│ ├── plugin-server/ # NestJS services, controllers, GraphQL extensions
│ └── plugin-ui/ # React components, i18n, admin pages
├── e2e/ # End-to-end tests
└── package.json
See the Plugin Development Guide and the UI SDK docs for details.
deenruv/
├── apps/
│ ├── server/ # NestJS GraphQL API server
│ ├── panel/ # React/Vite admin UI (Tailwind, Zustand)
│ └── docs/ # Docs site (Next.js + Fumadocs)
├── packages/
│ ├── core/ # Core framework (entities, services, modules)
│ ├── common/ # Shared types & generated GraphQL types
│ ├── react-ui-devkit/ # UI SDK for building admin plugin UIs
│ ├── testing/ # E2E test utilities
│ └── ... # admin-dashboard, admin-types, cli, etc.
├── plugins/ # 32+ official plugins
└── e2e-common/ # Shared E2E test config and fixtures
| Command | Description |
|---|---|
pnpm start |
Start server + admin panel |
pnpm start:server |
Start only the API server |
pnpm start:admin-ui |
Start only the React admin panel |
pnpm watch |
Watch mode for UI packages |
pnpm build |
Build all packages (sequential, respects deps) |
pnpm test |
Run all tests (Vitest) |
pnpm lint |
Lint everything |
pnpm codegen |
Generate GraphQL/TypeScript types |
pnpm server-docker-up |
Start Postgres, Redis, MinIO |
pnpm server-docker-down |
Stop Docker services |
Unit tests are colocated with source files (*.spec.ts). Run them with pnpm test.
E2E tests live in e2e/ directories (*.e2e-spec.ts) and use @deenruv/testing. Set E2E_DEBUG=true for extended timeouts when debugging.
We follow Conventional Commits:
feat: add new payment provider
fix: resolve order calculation bug
docs: update plugin documentation
See our PR template for guidelines. PRs go to the develop branch.
- Full Documentation
- Live Admin Panel Demo
- Live Storefront Demo
- Admin UI SDK Reference
- Plugin Development Guide
Deenruv is derived from Vendure, created by Michael Bromley and licensed under MIT. Forked in 2025, it has since undergone significant development. We gratefully acknowledge the foundational work of the Vendure project and its contributors.
MIT — see LICENSE.