You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Epic: fully-mocked public demo — "experience deckd in the browser"
A public, backend-free demo page where any visitor experiences the press→world-reacts loop of deckd. Virtual apps run in the browser, tick on a clock, and speak the real wire protocol; pressing a deck button visibly moves the world (music plays, volume changes, apps switch) even though nothing real is happening.
The key insight
Once app-switching is a real feature, the only difference between "demo" and "product" is where the state comes from. The frontend already renders whatever ServerMessage stream arrives via useDeckdSocket — it can't tell a real Python daemon from a fake in-browser one. So we mock at that single seam and everything downstream is the real UI.
Sequencing (Tier 1 → gate → Tier 2)
Tier 1 and Tier 2 are two presentation layers on one foundation (MockDaemon + virtual apps + clock). The bulk of the work lands before either tier; Tier 1 proves the stream is alive cheaply; Tier 2 is mostly a UI skin. So we build the foundation, ship Tier 1, evaluate, then commit to Tier 2.
Epic: fully-mocked public demo — "experience deckd in the browser"
A public, backend-free demo page where any visitor experiences the press→world-reacts loop of deckd. Virtual apps run in the browser, tick on a clock, and speak the real wire protocol; pressing a deck button visibly moves the world (music plays, volume changes, apps switch) even though nothing real is happening.
The key insight
Once app-switching is a real feature, the only difference between "demo" and "product" is where the state comes from. The frontend already renders whatever
ServerMessagestream arrives viauseDeckdSocket— it can't tell a real Python daemon from a fake in-browser one. So we mock at that single seam and everything downstream is the real UI.Sequencing (Tier 1 → gate → Tier 2)
Tier 1 and Tier 2 are two presentation layers on one foundation (MockDaemon + virtual apps + clock). The bulk of the work lands before either tier; Tier 1 proves the stream is alive cheaply; Tier 2 is mostly a UI skin. So we build the foundation, ship Tier 1, evaluate, then commit to Tier 2.
Work items
Non-goals (locked)
Cross-cutting constraints
protocol.generated.ts(drift-guarded, see Public deploy + drift guard + "Try it live" link #156 / Enforce Python and TypeScript protocol parity #76) — no advertising features the product lacks.Math.random/ wall-clock, so they double as fixtures for the focus-driven app-switching logic.prefers-reduced-motion; touch- and keyboard-accessible.Prior art informing the design