Feature-Flag Matrix
Every gated capability in Uploz, scoped to its milestone, with how each flag resolves in DEV and PROD — mock (stubbed implementation) versus live (wired to Postgres / worker / push). The promotion path is mock to live: a flag still on mock in DEV is not a candidate for live in PROD. The 5 flags below are all scoped to MVP01.
5
Flags tracked
2
Live in DEV
1
Live in PROD
3
Mocked in DEV
Flag matrix
Each row is one flag across both environments. Grouped by surface; the mode cell is what the flag resolves to today — mock vs live vs off.
| Flag | Milestone | DEV | PROD |
|---|---|---|---|
Ripple flags.ripple Pointer-origin ripple transition between cockpit views. The baseline MVP01 motion primitive. Promoted end-to-end; first flag wired off the mock harness. | MVP01 | Live | Live |
Slot machine flags.slotMachine Reel-style numeric roll for KPI tiles and counters. Reads the same figures as the static render. Live in DEV; PROD still on the mock easing curve pending a reduced-motion audit. | MVP01 | Live | Mock |
Cinematic flags.cinematic Sequenced reveal for the overview / mission-control hero. Heaviest of the animation flags. Mocked in DEV against canned timings; not yet exposed in PROD. | MVP01 | Mock | Off |
| Flag | Milestone | DEV | PROD |
|---|---|---|---|
Venue mode flags.venue Large-screen venue layout: high-contrast, room-distance typography for the run-of-show board. DEV serves a mock room profile; live profile waits on the venue calibration pass. | MVP01 | Mock | Off |
| Flag | Milestone | DEV | PROD |
|---|---|---|---|
Web push flags.webPush Browser push delivery for the notification log (push_subscriptions). Dispatched by the worker. VAPID keys generated; DEV logs a mock delivery, PROD off until VAPID secrets land. | MVP01 | Mock | Off |
Mock to live: what's left
Flags still resolving to a mock implementation in DEV. Each must reach live in DEV before it is a candidate for live in PROD.
| Flag | Surface | DEV | PROD |
|---|---|---|---|
| flags.cinematic | Animation | Mock | Off |
| flags.venue | Venue | Mock | Off |
| flags.webPush | Notifications | Mock | Off |
Authored from the flag config (illustrative project-tracking state, permitted per R1), not a read of a live flag service. Mock implementations are in-memory / stubbed and never touch the Postgres write path; promoting a flag to live wires it to the real implementation behind the same key.