Pages & Interfaces
Blocks on a page, each bound to a table. No query to write and nothing to redeploy.
The blocks
| Block | Shows | Needs |
|---|---|---|
| Data table | A grid of rows | A table, or the reader's own tasks |
| Board | Cards in lanes | A dropdown column to group by |
| Metric | One number | An aggregate and an optional filter |
| Chart | The same query, bucketed | A column to group by, or a date grain |
| Form catalog | What people can ask for | Nothing — lists every published Form by default |
| Actions | Buttons that start a Form | A Form in this app |
| Heading / Text | Words | Nothing |
| Grid / Stack / Card | Layout | Nothing |
Five more blocks — record detail, related list, timeline, stepper and the process panel — exist only on a record page, because each is about one row. They have their own page.
Presets
A page can declare what it is for — collect, view, analyze or record. It is a hint that shapes the blocks offered while you build, never a constraint on which ones are legal.
Tiles and charts
A metric is one number; a chart is the same query with a bucket. Both read the rows the work happens in, so the figure is current without anybody preparing it.
- Aggregate with count, sum, average, min or max.
- Group by a column, or bucket a date column by day, week, month, quarter or year.
- A tile groups exactly one way. Both at once is a pivot table, and a pivot table is not a tile.
The request catalog
Twelve request types want one catalog entry, not twelve sidebar rows. Put a catalog block on a page and it lists what the app offers, in the order you set — or every published Form, which means a Form you publish next week appears without anyone remembering this page.