Skip to main content

ADR 0002: Web-first UI

Date: 2026-09-11 · Status: accepted · Implementation: see current implementation for delivered scope and remaining work.

Context

Multiple devices should visualize and administer one running booth. The audio engine must survive client reloads and disconnects.

Decision

Use Next.js, React, and TypeScript for the platform UI, communicating with boothd over versioned HTTP/WebSocket contracts. Plan Tauri only as an optional packaging layer using those same contracts.

Consequences

A browser and a desktop shell can share frontend behavior. Reconnect, authentication, ownership, and stale-state handling become first-class requirements. Browser rendering is not a sample-accurate control clock. Desktop distribution and daemon process ownership remain later decisions.