Complete reference application

Incident Desk

A polished incident operations product that exercises Trestle authentication, typed records, access rules, realtime events and files through published HTTP contracts.

Incident Desk incident queue and selected incident timeline

What it proves

Identity

Real application users

Registration, login, access-token refresh and ownership rules run through Trestle.

Data

Typed operations

Incidents and updates use schemas, validation, optimistic versions, filters and sorting.

Delivery

Live and durable

SSE refreshes the workspace while files remain bound to incident records.

Run the example

git clone https://github.com/trestle-dev/trestle-example
cd trestle-example
TRESTLE_ADMIN_EMAIL=admin@example.com \
TRESTLE_ADMIN_PASSWORD='choose-a-real-password' \
npm run bootstrap
nift build
npm start

Open http://127.0.0.1:4173 and create an application account. Bootstrap is idempotent and saves its copy-once service credential in an ignored, owner-only configuration file.

Architecture and authority

The browser uses application-user tokens for record operations. A dependency-free Node companion exposes a strict route allowlist and holds one service credential scoped to realtime reads and file operations. It cannot administer collections, users, backups or integrations.

browser
  -> Incident Desk same-origin server
    -> Trestle HTTP API
      -> SQLite, event journal and file storage

The example never imports a Trestle Go package and never opens the SQLite database. Replace the vanilla frontend or Node companion with your preferred stack while keeping the same boundary.