Demo

Technology stack

Detailed inventory of languages, frameworks, data stores, UI libraries, and runtimes used across the Quark ERP / Quan ERP ecosystem — with major versions from the current base stack.

Overview

Quark ERP is a TypeScript-first, plugin-based ERP. The base core and every plugin share one version line of @quan-erp/* packages (currently 1.x) so backend DI, frontend core APIs, and platform bridges stay compatible.

  • Backend plugins run on a custom Express-based framework (@quan-erp/shared-backend-core)
  • Frontend plugins are React + Vite apps that register into the base core at runtime
  • One UI codebase targets Web, Desktop (Electron), and Mobile (Capacitor)
  • Align plugin deps and requiredBasedVersion with the base 1.x line

Backend

Server-side stack for base and plugin backends. Major versions below are taken from quan-erp-node-core/base (backend package.json, shared-backend-core, and docker-compose).

TechnologyRoleVersionNotes
TypeScriptLanguage5All backend services and entities; ESM builds with .js import extensions
Quark ERP FrameworkPlugin host / DI / HTTP1Based on Express.js — IPlugin, @Module, controllers, middleware, lifecycle hooks
TypeORMORM0Entities, repositories, QueryRunner, synchronize (dev), and migrations (staging/prod)
PostgreSQLPrimary database17Persistent ERP data (often via pgbouncer in compose)
RedisCache / sessions / jobs7Caching, sessions, and queue / cron helpers

Frontend

Client stack for the base core and plugin frontends. Major versions below are from quan-erp-node-core/base/frontend/package.json.

TechnologyRoleVersionNotes
ReactUI library19Plugin screens, core chrome, and shared components
TypeScriptLanguage5All frontend packages; keep types aligned with shared-types / export surfaces
Tailwind CSSStyling4Utility-first styling; match core / shared-ui patterns
TanStack React QueryServer state5Fetching, caching, and mutations for backend APIs
ZustandClient state5Lightweight stores for core/plugin UI state
CapacitorMobile runtime7Native iOS / Android (@capacitor/core); prefer Platforms helpers from shared-frontend-core

Deployment & platforms

The same frontend artifact runs across targets; use Platforms helpers from shared-frontend-core instead of hardcoding native APIs in plugins.

TargetRuntimeVersionHow it shipsNotes
WebBrowser + NginxBase frontend container / static hostDefault local compose target on :80
DesktopElectron39Desktop app wrapping the web appUse Platforms.isDesktop() for desktop-only paths
MobileCapacitor7Native iOS / Android appCamera, haptics, filesystem, etc. via shared-frontend-core
Server / hostDocker Compose1Postgres, Redis, backend, frontendSee Deployment for install.sh / compose layout

Desktop

Electron 39

Mobile

Capacitor 7

Web

Web