All screens
42 days

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.

Animation
FlagMilestoneDEVPROD

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.

MVP01LiveLive

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.

MVP01LiveMock

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.

MVP01MockOff
Venue
FlagMilestoneDEVPROD

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.

MVP01MockOff
Notifications
FlagMilestoneDEVPROD

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.

MVP01MockOff

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.

FlagSurfaceDEVPROD
flags.cinematicAnimationMockOff
flags.venueVenueMockOff
flags.webPushNotificationsMockOff

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.