Inspiration

When a raid hits, viewers land in a chat where nobody knows what’s going on. Raid Relay is built to make those first seconds welcoming: give incoming viewers story context and let them help decide what happens next.

What it does

Raid Relay turns a Twitch raid into the next chapter of a shared story. Chat proposes a name for a relic, and the streamer approves it before it becomes canon. When a raid arrives, its reported viewer count becomes the next party size. The receiving channel’s overlay welcomes viewers with a recap, then incoming and local viewers vote on what the party should do. A public story chain records the decisions and channel handoff.

Incoming-party membership is based on observed participation or an explicit !join; Twitch’s raid count does not identify every individual viewer.

How we built it

We built the dashboard and stream overlay with React and TypeScript, with a Node.js backend, SQLite persistence, and WebSockets for live updates. Twitch chat and raid adapters feed a deterministic game engine that handles quest state, faction votes, and outcomes. NVIDIA Nemotron can generate a short recap from story facts; the app validates it and uses a template fallback if the AI response is unavailable or invalid. OpenAI Codex assisted throughout implementation.

Challenges we ran into

Twitch requires the right broadcaster authorization for channel-specific subscriptions, so supporting two accounts required loading and refreshing a separate token for each account. A raid provides a viewer count but not a reliable identity list, so we made incoming-party membership an explicit, transparent signal. We also designed a deterministic fallback so a recap provider failure doesn’t stop the story.

Accomplishments that we're proud of

We built a complete story flow: chat naming with streamer approval, two-faction voting, raid-sized parties, a stream overlay, and a public story chain. The game engine—not the AI—determines votes and outcomes. We also got the NVIDIA recap to return successfully and show Recap source: ai in the dashboard.

What we learned

A raid count tells us how many viewers arrived, not who they are. Clear opt-in signals are more honest than pretending to identify every raider. We also learned to keep generated writing separate from game decisions so the story remains predictable and auditable.

What's next for Raid Relay

We’re validating the full live flow between both authorized channels, including real chat commands, raid counts, handoff, and faction tallies. Next, we want to improve the welcome experience, test reconnect behavior, and explore a Twitch Extension if it makes the experience easier for viewers to access.

Built With

Share this project:

Updates

Submission history