Skip to main content
A module is an npm package that adds one area of the business to Devias: its data, its screens and its actions. The CRM is a module. So are invoicing, expenses and the Stripe connection.

Parts of a module

Only the manifest is required. The Expenses module is a manifest and nothing else.
The package says which parts it has through its exports: ./manifest, ./server and ./studio.

How a module reaches a workspace

  1. The package is listed in devias.config.ts, so the studio and the server know about it.
  2. An admin installs it in a workspace from Settings → Modules, after reviewing a plan of what will change.
  3. From then on the studio shows its screens and the server runs its code.
Everything a module declares carries a uuid that never changes. That is how Devias knows what the module owns, and how it updates the module later without touching anything the workspace created.
A module can build on another. Expenses, for example, needs the CRM installed first, because an expense points at a CRM company.