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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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