01The shell
Topbar, sidebar, company switcher, dashboard grid and widget runtime in one screen.
- Collapse the sidebar and watch the 248px → 72px rail
- Switch company and observe the context revision invalidating caches
- Open the inspector on the right
Try it
The Foundation Lab is the reference consumer of @ottili/foundation-framework. It is the same code the products import, running against the same Unified API — with a scenario inspector on top so you can force the states that are normally hard to reproduce.
Guided tour
Each entry is a real route in the Lab. Company acme is the seeded demo tenant.
Topbar, sidebar, company switcher, dashboard grid and widget runtime in one screen.
The full §47 inventory rendered live: primitives, forms, data grids, overlays, navigation and platform states.
Draft a branding change, preview it, publish it, then roll it back.
Permission, entitlement, rollout and degraded states rendered through one resolver.
The shared AI, Files, Flows, Approvals, Activity and Jobs surfaces.
The Lab's own coverage matrix: which SoT chapter is proven by which screen.
Scenario inspector
A framework is judged by its bad days. The Lab can put every surface into a failure, empty, locked or expired state without touching a database.
| Axis | What it lets you check |
|---|---|
| Role | Switch between permission sets and watch navigation, actions and states change. |
| Theme | Light, dark, system and high contrast, plus per-company accent. |
| Backend health | Force a healthy, slow or failing Unified API and inspect the degraded states. |
| Data state | Empty, sparse, typical and stress datasets for every surface. |
| Product state | Locked, upgrade-required, rollout-off and fully entitled. |
| Session state | Active, refreshing, expired and re-authentication required. |
| Layout stress | Long labels, dense tables, narrow viewports and RTL-ish pressure. |
Keyboard
Command palette. Search routes, records, commands and settings through the registered search providers.
Ottili Workbench. Shell, API Explorer, Events, Logs, Runs, Approvals and Jobs panels.
Shortcut overview. Every shortcut is registered through the command contract, so it also appears in the palette.
Run it yourself
The package family is a pnpm workspace; the Lab consumes it through file links and transpiles the TypeScript source directly.
Install the package family
Install the reference app
Start the Lab
Run the release gate
The release gate chains typecheck, the package test suites, the architecture boundary tests, the Lab's typecheck, build, unit tests and Playwright E2E, plus the Python tool suites that mirror the TypeScript validators. Cross-language parity is tested with shared JSON fixtures, so a manifest that validates in the browser also validates in the Unified API.