Dillo example

Project Tracker

Projects and milestones.

What this demonstrates

Track projects and hit milestones. Structured data, clean API. The kind of internal tool every team ends up building — except this one took three files instead of three sprints.

How it works

The permissions are the app. This is the whole data model — schema.ts, the first of the app's three files (its import line, not shown, brings these names in from "create-dillo/schema"):

schema.ts
// The schema the live backend serves today (span2/live-schemas filing, re-verified at deploy).
export default schema({
  Milestone: table({
    done: boolean().default(false),
    due: string().date().optional(),
    notes: string().max(500).optional(),
    project: relation('Project'),
    sortOrder: integer().default(0),
    title: string().min(1).max(160),
  }).permissions({ view: anyone, edit: owner }),

  Project: table({
    archived: boolean().default(false),
    color: string().max(7).optional(),
    description: string().max(500).optional(),
    name: string().min(1).max(120),
    status: string().min(1).max(24).default('active'),
  }).permissions({ view: anyone, edit: owner }),
});

Try it

  1. Open the live demo
  2. Create a project
  3. Add milestones and check them off