Inventory registration example
The smallest possible extension: a manifest, a page, and a setting, with nothing else.
Updated September 19, 2026 2 min read
When building your first extension, start with a small example whose registration you can inspect end to end. The Inventory example provides a page, navigation entry and settings, so you can learn how a module becomes available in a workspace.
This is a developer scaffold, plainly: it has no stock ledger, no purchase orders, no reorder worker, and no real inventory-management workflow behind it.

Try the registration
Open Integrations, enable Inventory (example) in the module controls, then visit /admin/example-inventory. You should see an explanatory page. Change the illustrative reorder threshold, warehouse or reorder toggle through the shared settings controls, then check that the configuration persists.
The threshold accepts 0–10,000 and defaults to 10. Warehouse choices are main and overflow. These settings demonstrate configuration only; turning on the reorder toggle does not place an order. Keep secrets and private customer data out of public module settings.
What this example teaches you to build
Start with a visible place for a new capability: a named module, its route and navigation, and the settings a workspace can manage. Then add the actual business behavior as a separate, testable change.
For example, an equipment-register extension could use this registration pattern, then add records linked to existing customers and a tool for reading maintenance history. That equipment workflow is an extension idea, not functionality supplied by this scaffold.
The manifest and page source show the registration. Continue with your first change and adding a module.
Permissions, costs and recovery
Authorized module controls govern enablement and settings. AI configuration uses the shared preview and proposal tools with an approved change. The scaffold has no business-write tools and makes no provider or model request of its own; hosting and surrounding AI chat still have their usual costs.
Disable it in the same controls to hide its navigation and gate the page. Saved configuration remains. If the page is unavailable, inspect the enabled state and compiled manifest before changing routing. The developer guide lists registration and gating tests. They verify the scaffold, not a stock workflow.