The frame
The dashboard is what this is, what it never stores is what it is not, the connection is what makes any pane show anything, and roles and permissions is what you can see.
| Part | What it is |
|---|---|
| bar | The top strip: wordmark, project, environment |
| status band | The saffron strip under it: endpoint, facts |
| rail | The left column: the kinds |
| index | The middle column: the things of the chosen kind |
| record | The right column: one thing, in full |
Rail, index and record together are the body. Any one of the three is a pane.
The triad is meaning, not layout
The rail names a kind of thing. The index lists the things of that kind. The record fills the body with its details.
Left to right, always, whatever the things are.
Which is why the index is not a submenu: it lists rows, not destinations.
What you see depends on what you composed
The dashboard composes its navigation and its calls from your Worker’s manifest, rather than from settings somebody maintains.
So a Worker that does not compose payments has no purchases pane — and that is a fact the client discovers rather than a feature somebody remembered to hide.
Run pithy add support and a working support pane appears on the next visit — panes and the calls behind them, with nothing for either side to configure.
Composed-but-empty is not the same as not installed
A capability with no management surface reports an empty list rather than being absent.
Composed, but nothing to administer and not installed are different facts, and a client that cannot tell them apart renders the wrong thing for both.
Knowing a capability is installed is not enough to call it
Every mount point is configurable. A dashboard that hardcoded /payments would 404 against exactly the adopters who customized anything.
Each capability builds its manifest entry from its resolved config, so the paths name where things actually are.
Grayed out, not offered and refused
Each declared route names the scope it needs, and the manifest reports what you granted.
So an action you did not grant is unavailable rather than a button that answers 403.
Everything here is live
Nothing is cached. Your users, purchases, audit events and support mail are fetched from your Worker, rendered, and discarded.
The moment we held a copy, we would have become the thing this architecture exists to avoid.
The panes
Your data: Users · Purchases · Subscriptions · Entitlements · Audit trail · Support inbox · Email jobs · Feedback
Your project: Connection · Capabilities and versions · Migrations · Secrets · Tokens · Reconciliation · Cache
Yours: Settings and profile · Notifications