Sample Apps
Eight TypeScript DSL samples ship in the repository; read them in order, each adds a layer.
| Sample | Shows | Database |
|---|---|---|
| Tick | One file, inline types, a checklist, a New form | SQLite |
| Thread | Modules, boards, a split inbox, a workflow strip | SQLite |
| Compass | A CRM: dashboards, calendar, validation, its own look | SQLite or PostgreSQL |
| Ignition | Multi-tenant: dealerships and a lender, commands in two realms, a public form | PostgreSQL |
| Forecourt | A public marketplace: cards, a filter rail, a gallery, a landing | SQLite |
| Payday | HR and payroll: review queues, granted fixed actions, a custom component | SQLite |
| Depot | Warehouse operations: rollups, history, inline edit, the Tray look | SQLite or PostgreSQL |
| Commons | A moderated forum: public reads, member commands, custom components, Ink | SQLite or PostgreSQL |
Every App has a README with its setup; seed scripts live under
examples/databases/<app>/. Run them from a
source checkout. The
repository catalog
maps each capability to the file that shows it.
Tick: five minutes
Section titled “Tick: five minutes”A task list in one app.ts: a checklist with quick add, a grouped New form
with a visibleIf rule, fixed Complete/Reopen actions, a hand-kept order and
blur autosave. No menu: home: 'tasks' and no nav.
node examples/databases/tick/seed.mjs /tmp/my-tick.dbnpm run start -- --config /tmp/my-tick.db.json --app examples/apps/tick --openThread: practical starter
Section titled “Thread: practical starter”
An issue tracker split into typed modules: projects, issues and cycles. It
shows metric cards with trends, boards by status and by cycle with
work-in-progress limits, a split Inbox, a workflow strip, tags, attachments
and actions guarded by transitions. Read it when one file gets awkward.
Compass CRM: rich app
Section titled “Compass CRM: rich app”
Leads, accounts, contacts, opportunities, activities and tasks: dashboards
with time windows, curated forms, related record pages, a task calendar,
resource validation rules and a registered look of its own
(Meridian).
Ignition: advanced app
Section titled “Ignition: advanced app”The multi-tenant sample, PostgreSQL only. Each car dealership is a tenant; the lender is the platform realm above them. No role holds generic write, so every change is one of its commands, in exactly one realm. Applicants apply through a public, multi-step form placed by each dealership’s own intake address, and a durable job flags overdue reviews. A second, platform-only source holds applicant data under column ceilings.
It needs two empty PostgreSQL databases; the
README
is the one start recipe (seed, credentials, --policy, --commands, --jobs).
See also tenant Apps and
deploying Ignition.
Forecourt: a public site
Section titled “Forecourt: a public site”
A used-car marketplace anyone may browse through auth.public: a landing with
search, cards beside a filter rail, vehicle pages with a gallery, a
specification sheet and similar vehicles, and addresses in words
(/forecourt/vehicles?make=Toyota). Visitors send an anonymous inquiry;
signed-in shoppers keep a shortlist under a row policy; staff work the inbox.
Payday: people and payroll
Section titled “Payday: people and payroll”A single-company HR workspace with synthetic data: a people directory, payroll runs and pay statements, time off with balances, timesheets, benefits, documents and reports. Review queues sit on the Today dashboard; approvals are commands or granted fixed actions; a pay run shows a custom Pay history timeline. It does not calculate or move pay.
Depot: warehouse operations
Section titled “Depot: warehouse operations”A distributor’s stock across three warehouses. Pick, pack and ship queues work
on a phone; receiving, transfers, adjustments and blind cycle counts are
commands that keep a stock ledger in step with every bin. It shows rollups,
in-place editing and Set field…, history(), product photos with thumbnails,
firstRun(), a bin map component, three roles and the Tray look.
Commons: a moderated community forum
Section titled “Commons: a moderated community forum”A makers’ forum anyone may read. Members join, post, react and edit only their own words through commands; anyone reports a post through an anonymous public form; moderators work queues with bulk commands and a health dashboard. It shows a custom post stream, a record header over a member’s profile, redacted history and the Ink look.
Retired Apps under test/fixtures/apps/ are regression fixtures, not starters.