Skip to content

Epic: Playground — experience deckd in the browser #157

Description

@jonocodes

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.

Work items

Non-goals (locked)

  • Tier 3 virtual desktop (draggable windows / fake OS) — scrapped.
  • Real integrations, persistence, or auth.
  • No mock code in the production client bundle — demo/dev-only entry, tree-shaken out of prod.

Cross-cutting constraints

Prior art informing the design

  • Interactive-demo tooling (Arcade, Navattic, Storylane) → cold visitors need light guidance (→ coach-marks, Guided coach-marks / onboarding overlay for the demo #155).
  • In-browser OS sims (daedalOS, Puter) → full desktops are their own product; not worth it when the deck is the hero (→ Tier 3 scrapped).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions