Skip to content

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.

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.

Terminal window
node examples/databases/tick/seed.mjs /tmp/my-tick.db
npm run start -- --config /tmp/my-tick.db.json --app examples/apps/tick --open

README · app.ts

Thread’s Planning board: the open issues in a lane per cycle, a row per priority.

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.

README

Compass’s Task calendar: the open tasks on a month grid, three to a day and a count of the rest.

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).

README

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’s Vehicles, signed out: cards with a photo, price and facts beside a filter rail of makes and models with their counts.

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.

README

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.

README

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.

README

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.

README

Retired Apps under test/fixtures/apps/ are regression fixtures, not starters.