Project · Web · Music · Real-Time

Collaborative Music Queue

React Flask PostgreSQL Redis Docker MPD Python Tailwind CSS Cloudflare Tunnel Self-hosted

Project Overview

Who

Built for groups sharing a physical or virtual listening space — LAN party attendees, office coworkers, and remote listeners — who wanted a democratic say in what plays rather than deferring to a single person's playlist or a generic streaming algorithm.

What

A browser-based collaborative music queue where any authenticated user can search a 31,000-song library, request tracks, rate songs with 1–5 stars, and vote to skip songs they dislike. The queue updates in real time for all connected users, and an Auto-DJ mode uses audio similarity to keep playback going whenever the queue runs dry.

Additional features include song upload and metadata editing, a public analytics dashboard with play history and leaderboards, ReplayGain volume normalization, and Microsoft OAuth for single sign-on with domain-restricted access.

When

Originally built to support recurring LAN events and grew substantially over multiple development cycles. Major additions — audio analysis and similarity matching, a reporting dashboard, ReplayGain normalization, and OAuth integration — were layered in over time as the user base and library expanded.

Where

Self-hosted on an Ubuntu server with the music library mounted from a NAS. Accessible on the local network and, via a Cloudflare Tunnel, from anywhere on the internet — no open ports required on the home network. A mirrored test environment runs in parallel on the same host for safe pre-deployment validation.

Why

Shared music in group settings is notoriously contentious. The previous approach — one person controlling a playlist — caused friction and left most of the library undiscovered. This system gives everyone a voice, surfaces songs people didn't know were available, and keeps playback continuous and reliable without anyone actively managing it.

It also became a vehicle for applied learning: audio signal processing, vector similarity search, server-side streaming, OAuth flows, and running parallel environments with a structured test-to-production promotion path.

Stack & Tools

Frontend
React · Tailwind CSS
Backend
Python · Flask
Database
PostgreSQL
Sessions
Redis
Audio Playback
MPD · HTTP Stream
Containers
Docker · Docker Compose
Remote Access
Cloudflare Tunnel
Audio Analysis
Essentia · Neural Models
Auth
Microsoft OAuth · JWT
Host OS
Ubuntu Server
DNS & CDN
Cloudflare