Dogfood applications
These are separate, runnable applications built against Trestle's published HTTP contracts. They make different architectural choices and expose different parts of the platform to realistic use.
Incident Desk
An incident-management workspace with application users, rotating sessions, ownership rules, typed records, live updates and record-bound attachments.
- Browser authentication and refresh rotation
- User-aware list, create, update and delete rules
- SSE replay and authenticated file delivery
- SQLite and PostgreSQL smoke paths
Signal Forge
An observability explorer that imports synthetic operational events in 1,000-record transactions, then filters and paginates them through a scoped service credential.
- Deterministic 10k, 100k and 1m event seeding
- Typed telemetry, services, hosts and deployments
- Bounded server-side filters and cursor pagination
- No direct SQLite access from the application
signal-forge bootstrap
signal-forge seed events 1000000
npm start
Build Ledger
An auditable release-history application for recording project versions, commits, results, timings and artifact locations through a narrow Axum API.
- Fixed same-origin domain routes
- Typed Rust validation and structured errors
- Scoped service credential retained server-side
- Independently generated Nift frontend
Dispatch Board
A tactile operations queue that creates and advances dispatches while using Trestle record versions to prevent lost updates.
- Small Express domain API
- Optimistic updates with
If-Match - Constrained record identifiers and request bodies
- No upstream path selection in the browser
Field Notebook
A quiet environmental journal whose typed observation form is validated by Pydantic before FastAPI writes durable records to Trestle.
- Typed flora, fauna, weather and terrain entries
- Bounded text and temperature validation
- Async Trestle HTTP client
- Interactive domain API documentation
Event Console
A focused operational stream for recording structured events and querying them by validated level and source filters.
- Strict TypeScript domain shapes
- Bounded Fastify request bodies
- Server-built filter expressions
- Structured JSON context and timestamps
Why six examples?
Incident Desk tests identity-heavy collaboration and Signal Forge tests sustained batch ingestion. The four smaller applications then hold the product boundary constant while changing the trusted backend: Rust with Axum, JavaScript with Express, Python with FastAPI and TypeScript with Fastify. Together they demonstrate that Trestle is an ordinary language-neutral HTTP service, not a Go-only backend or a prescribed application framework.
Neither repository commits generated application data. Run each bootstrap and seed path against a disposable Trestle data directory to reproduce the exercise.