IT
Back to projects
2024-2025

Karaoke System

Realtime ecosystem for karaoke queue management

> The problem

In a karaoke venue with dozens of participants, managing the singer queue with paper or shared spreadsheets creates chaos: lost order, duplicates, no visibility for those waiting. When multiple devices are connected (host tablet, participant phones), keeping state synchronized becomes the real technical challenge.

  • Inconsistent queue order across devices
  • No real-time visibility for participants
  • Frequent conflicts in manual management

> The solution

I designed a server-authoritative architecture where the NestJS backend is the single source of truth. The server handles all queue, room, and turn logic, while clients only send actions and receive updates. Communication happens via Socket.IO with Redis as the shared state layer and MongoDB for persistence.

  • NestJS backend as single source of truth
  • Socket.IO for bidirectional real-time updates
  • Redis for shared state and session recovery
  • React Native (Expo) app as UI and host interface

> The result

The system is stable in production and handles karaoke sessions with dozens of participants connected simultaneously. Multi-device synchronization is instantaneous, state conflicts are eliminated by the server-authoritative architecture, and sessions survive disconnections thanks to automatic recovery.

  • Zero state conflicts between devices
  • Automatic session recovery
  • Synchronization latency under 100ms

> Features

  • Real-time queue management
  • Multi-device synchronization
  • Shared state with Redis
  • Session persistence and recovery
  • Event-driven architecture
  • Host and participant modes

> Tech stack

Node.js NestJS Socket.IO Redis MongoDB TypeScript React Native Expo