A whole working app in one file.

A complete app

This is a whole working app — nothing is elided:

app helpdesk "Helpdesk" {
  tagline  "Tickets from new to resolved."
  category "Support"
  icon     inbox
  tier     free
}

entity Ticket "Ticket" plural "Tickets" {
  subject:  text required label "Subject"
  reporter: text pii
  priority: enum low, normal, high
  owner:    ref User on delete nullify

  workflow {
    initial New
    states New, Triage, InProgress, Resolved
    terminal Resolved

    triage:  New -> Triage
    start:   Triage -> InProgress requires owner
    note:    InProgress -> InProgress
    resolve: InProgress -> Resolved requires resolution
  }
}

query my_open(who: text) = select subject, priority from Ticket where owner == who sort priority desc limit 20

page dashboard "Dashboard" list {
  board Ticket summary [subject, priority, owner] label "Open tickets"
  stat "Unassigned" = count(Ticket where owner == null)
  list from my_open(who: me) columns [subject, priority]
}

page ticket-detail "Ticket" detail Ticket {
  jobs label "Workflow" summary [subject, priority, owner]
  section "Details" {
    field subject
    field reporter
  }
  action "Resolve" event resolve confirm "Resolve this ticket?"
}

nav [dashboard, ticket-detail]

home dashboard

seed demo {
  Ticket acme { subject: "Printer offline", priority: "high" } state Triage
}

Reading it in order: app carries the listing metadata; entity declares typed fields and, inside workflow, the states and the transitions written as event: From -> To; query is a named, tenant-scoped read; page lays out blocks; nav and home order the app; seed ships demo rows.