How kacperczeczot/stagesync works
StageSync is a live-show control system: an operator manages projects and setlists, edits timelines, and controls a server-authoritative transport; performers receive synchronized stage views and audio over the LAN. The server also provides project/library storage, MIDI automation, imports, and presence, while desktop and Android launchers help devices find or host a show. Several subsystem links below are documented capabilities; source excerpts do not expose every runtime route or client connection, so those links are marked dashed.
Main entry points: app.ts API and runtime · AdminShell.tsx Admin console · useAdminImportHandlers.ts Song import · useTransportSocket.ts Transport socket
Components 18
Operator and Editing
- Admin console
apps/web/src/shells/admin/AdminShell.tsx - Timeline editor
apps/web/src/shells/timeline/lanes/useTimelineLanePointerHandlers.ts - Song import
apps/web/src/shells/admin/useAdminImportHandlers.ts
Show Server
- API and runtime
apps/server/src/app.ts - Transport SSOT
apps/server/src/transport/engine.ts - Project storage
apps/server/src/storage/index.ts - MIDI automation
apps/server/src/midi/host.ts - Client presence
apps/server/src/presence/client-presence.ts - Live desk
apps/server/src/live-desk/live-desk.ts
Performer Clients
- Performer shell
apps/web/src/shells/client/ClientShell.tsx - Synced audio
apps/web/src/lib/audio/audio-playback/sync-engine.ts - Transport socket
apps/web/src/transport/useTransportSocket.ts
Launch and Hosting
- Desktop launcher
apps/desktop/launcher/app.js - Android local host
apps/console/android/app/src/main/java/com/stagesync/console/LocalHostService.kt - Android performer
apps/performer/android/app/src/main/java/com/stagesync/performer/HostWebActivity.kt
Shared Show Logic
- Text bridge import
packages/shared/src/text-anchor-bridge/bridge-orchestrator.ts - Tempo map logic
packages/shared/src/time-tempo/time.ts
Other components
- Show operator
Connections 19
- Show operator → Admin console: operates
- Admin console → Timeline editor: edits projects
- Admin console → Song import: starts imports
apps/web/src/shells/admin/useAdminImportHandlers.ts - Song import → Project storage: loads and saves
apps/web/src/shells/admin/useAdminImportHandlers.ts - Song import → Text bridge import: parses song text
- API and runtime → Project storage: resolves paths
apps/server/src/app.ts - API and runtime → MIDI automation: wires MIDI
apps/server/src/app.ts - API and runtime → Live desk: creates store
apps/server/src/app.ts - API and runtime → Client presence: uses presence
apps/server/src/app.ts - API and runtime → Transport SSOT: wires transport
apps/server/src/app.ts - Admin console → API and runtime: controls show
- Performer shell → Transport socket: tracks show state
- Transport socket → API and runtime: syncs over LAN
- Timeline editor → Tempo map logic: edits timing
- Synced audio → Tempo map logic: resolves tempo
apps/web/src/lib/audio/audio-playback/sync-engine.ts - Synced audio → Transport socket: syncs playback
- Desktop launcher → API and runtime: connects to host
- Android performer → API and runtime: joins host
- Android local host → API and runtime: starts local host
apps/console/android/app/src/main/java/com/stagesync/console/LocalHostService.kt