Preview — invented data. No real customer, reseller or figure appears anywhere on this site. Every screen is rendered from the shipped components at commit 5b6d78577f (working tree had uncommitted changes). The app shell — sidebar, sign-out, mobile top bar — is not rendered. Alexandria is the real face, inlined from 8f2ca9bed5019488-s.p.1rne3a59172go.woff2 in the local next build.

Three screens, built 2026-08-31

Static renders of the real components against invented data. Open them on a phone. Nothing here talks to a database, a Stripe account or the network — every stylesheet and the Alexandria font file are inlined into each page.

What is real here and what is not

Real: every component, every stylesheet, and all of the arithmetic. lib/billing/brackets.ts decides the bracket and the rolling-month boundary, lib/billing/book-projection.ts computes the projection, and lib/billing/revenue.ts computes every figure on the admin screen. The class names, the markup and the cascade are what the app renders.

Not real: the data. Every shop, reseller and dollar below was invented for this preview — see scripts/preview/fixtures.mts. The commission ledger uses only the Waiting and Sent states, because those are the only two anything writes today; the other three would have been a fiction.

Not rendered: the app shell each layout wraps these in — the sidebar, the sign-out control and the mobile top bar. It needs its own session reads, and it is not the design under review. On a real phone there is a 64 px band above the screen that is not here.

One edit to the markup, and only one: the buttons and links inside the screens point at real app routes, which do not exist here. Each has been repointed at the preview page that shows it, or back to this hub where there is no preview. Nothing visual was touched.

Rebuild it: bash scripts/preview/build.sh, from the repo root.