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.