StreamVibes
Chat commands and redeems queue songs on Spotify directly — no bot to babysit, no alt-tabbing mid-stream.
01 / The problem
Song requests during a stream have always meant manual work. A viewer asks for a track in chat, and the streamer alt-tabs out of the game to search Spotify and queue it themselves — over and over, all stream. It breaks flow, and there's no way to control who's even allowed to ask. Anyone in chat can spam requests just as easily as a trusted regular.
02 / The approach
StreamVibes turns a chat command or a channel point redeem straight into a Spotify action, with a permission layer in front of it. A streamer decides who the commands respond to — everyone in chat, VIPs only, or mods only — and that role check happens before anything touches Spotify.
The permission model is a single toggle per role, not a fixed rule:
- Everyone — any viewer in chat can trigger song requests.
- VIPs only — requests are limited to a streamer's VIP list.
- Mods only — requests are limited to the mod team, useful for curated listening sessions.
Reading chat live for every streamer at once is the harder half of this. A single server watching chat for hundreds of concurrent streams doesn't scale cleanly, so StreamVibes runs the chat-reading layer as a fleet of Docker containers instead of one process. Streamers currently live get distributed across containers by viewer count and chat rate — busier streams take up more of a container's headroom. When a container gets close to overloaded, it splits in two: its highest-viewer streamer moves to the new container, and any newly added streamers route to that new container until it fills up as well.
Each container just watches chat and waits. When a command or redeem fires, the container forwards that event to a secure API route, which fetches the requesting streamer's own stored Spotify credentials and makes the request on their behalf — every streamer's keys stay scoped to their own account and their own API calls.
03 / Under the hood
StreamVibes is built on Next.js with Supabase as the database layer. The chat-reading workers run in Docker specifically because they need a persistent, stateful process per shard of streamers — not a stateless request/response function — and containers make that horizontally scalable without hand-managing servers. Twitch's API supplies chat events and channel point redemptions; the Spotify Web API handles the actual queueing.
04 / Where things stand
StreamVibes is still in active testing — a group of streamers is using it live and regularly so we can catch real chat-load and edge-case behavior before a wider release.