Demo

FAQ

Answers to common questions about Quark ERP architecture, plugins, versions, licensing, and support.

Why is the product Quark ERP but packages are @quan-erp?

The public product name is Quark ERP. The npm scope stays @quan-erp by design — renaming packages would break existing installs. Treat Quark ERP and @quan-erp as the same platform.

Why use a core + plugins architecture?

Building login, authentication, security, and basic entities from scratch takes a long time. Even though those pieces look basic, you still have to handle roles and permissions, sessions, API guards, and the shared entities every module depends on. Quark ERP’s thin core owns that platform layer so you can focus on plugins — domain features — while the core handles the rest.

What is a plugin?

A plugin is a self-contained package with backend APIs, database tables, and React screens. The base app stays thin and loads plugins dynamically at boot — not at compile time.

Do I need to build login and auth myself?

No. The core ships login, authentication, sessions, roles and permissions, security defaults, and builtin entities (users, partners, settings, files, and more). You still declare plugin-specific permissions for your screens and APIs, but you do not rebuild the whole auth and rules stack from scratch.

Can one plugin import another plugin’s source?

No. Plugins must not import another plugin’s src/. Share contracts through @quan-erp/shared-* packages, declared pluginDependencies, and cross-plugin export / inject patterns documented under Backend → Export.

Do all @quan-erp packages need the same version?

Yes. Keep every @quan-erp/* package in a plugin and the base images in docker-compose.yaml on the same version (for example ^1.0.0) to avoid dependency conflicts.

How do I create a new plugin?

Use the starter template CLI to scaffold a plugin, set the name and versions, run watch, seed the module, then install it into the base app. See Getting started → Create plugin.

Why doesn’t constructor injection work?

Quark ERP DI uses property injection only. Inject services with @Inject / @InjectEnv / @InjectBuiltinLogger on class properties — not in the constructor.

How do I deploy Quark ERP?

Production setups typically run the base backend/frontend with Docker Compose, Postgres, and Redis. Follow the Deployment page for compose layout, env vars, and install steps.

Where are pricing and license details?

Commercial plans are on the Quark ERP product page. License and open-source notes are on the License docs page. For paid help (training, production support, custom plugins), use Support.

How do I get help?

Start with these docs, the live demo, and the starter template. For setup, licensing, or production issues, email The Paradance with version, plugin, environment, and reproduction steps.