Local Tool · Node.js + WebSocketOverlay Control Hub
The backend for a Twitch stream overlay kit — a small local Node.js server (built-in http + ws, no framework) that runs on the streamer's own PC, serves a control panel as a plain webpage, and pushes every change live over one WebSocket to the overlays running in OBS. State persists to disk, so a restart doesn't reset the goal counter.
It has two jobs. A Twitch watcher turns first-time chatters (anonymous IRC, no auth) and subs, resubs and gift subs (EventSub) into tiered alerts, and can optionally listen for Streamlabs donations; the panel works without any Twitch token. The control side owns the live state through small modules — goal counter, on/off switches per overlay, active design, per-design colors, saved color presets, handle name and photo, notes, and a demo-chat switch that resets itself on restart.
The panel has grown into a four-column dashboard: live controls and test alerts, overlay switches, color editing and presets, a design picker with Shuffle and an Auto timer (every 1, 5 or 10 minutes, with a countdown that runs in the hub so it keeps going with the panel closed), and an example overlay that shows the real alert, goal counter, handles, facecam and chat in the current design. There are now ten swappable designs, and new ones appear just by adding a folder. A soundboard mode plays clips through the alert overlay, and the tray app supervises the hub — it logs why a crash happened, restarts it, and gives up with a notification if it keeps failing.