Our generic business app for Twenty, with a CRM, units of measure, a product catalog, inventory, work cases and field service. Any company can install it. One folder per module under src/.
Design: docs/superpowers/specs/2026-10-06-twenty-platform-crm-design.md.
| Module | Holds |
|---|---|
src/crm/ |
Leads, stages, lost reasons, recurring plans, assignment and predictive scoring (CRM) |
src/sales-team/ |
Sales teams, members and the stage–team link |
src/crm/settings/ |
The CRM settings page |
src/shared/plug/ |
Plug points: another app or service makes one Platform decision |
src/utm/ |
Source, Medium, Campaign, UTM stage and tag |
src/uom/ |
Units of measure with 30 default units (Products) |
src/product/ |
Products, variants, attributes, pricelists, combos (Products) |
src/stock/, src/stock-picking-batch/, src/product-expiry/, src/base/ |
Inventory: warehouses, transfers, stock levels, counts, lots, reports (Inventory) |
src/helpdesk/, src/helpdesk-type/, src/helpdesk-product/, src/helpdesk-crm/, src/helpdesk-ticket-related/, src/helpdesk-sla/, src/resource/ |
Work cases: cases, teams, stages, service levels and working hours (Work cases) |
src/fieldservice/, src/base-territory/, src/fieldservice-crm/, src/fieldservice-stock/, src/fieldservice-equipment-stock/, src/fieldservice-stage-validation/, src/helpdesk-fieldservice/, src/fieldservice-activity/ |
Field service: service orders, locations, equipment, workers, teams and service areas (Field service) |
src/shared/install/ |
The pre-install step and the post-install hook (Install and upgrade) |
src/roles/ |
Staff access: building blocks and the Roles page (Roles and row access) |
Later modules, each with its own design: Sales, Purchase.
- Node 24 (
.nvmrc) and Yarn. - A Twenty server on the same version as the SDK (
twenty-sdk2.45.0). - Logic functions need
LOGIC_FUNCTION_TYPE=LOCALon the server and worker.
From this folder:
yarn install --immutable
yarn lint && yarn typecheck && yarn test
yarn twenty dev:build --tarball # .twenty/output/platform-<version>.tgzEach publish needs a higher version in package.json; an equal one is refused.
yarn twenty remote:add --api-key <ADMIN_API_KEY> --url <SERVER_URL> --as <remote>
yarn twenty app:publish --private -r <remote>
yarn twenty app:install -r <remote>Upgrading from the 1.x app: see Install and upgrade.
The guides are in docs/guide/: CRM, Inventory, Products, Work cases, Field service, Roles and row access, Install and upgrade, Build and publish.