Inspiration
We analyzed the most prominent issues within the Twitch community and identified the challenges smaller streamers face in growing their channels. A raid is one of the best moments on Twitch: one community arrives in another channel all at once. But raids usually stay inside the same language, and when they cross one, the two chats can't really talk to each other.
We came up with the idea of RaidSphere: a way to turn raids into a way to discover the world, not just the next channel in your language. Our vision combines two existing Twitch features, raids and channel points, to motivate both streamers and viewers. Streamers grow by supporting each other, and channel points gain meaning by letting viewers show symbolic support for their favorite streamers.
This first version focuses on raids across languages. Channel points are the next step.
What it does
RaidSphere is a 3D globe for streamers, in the browser and in OBS.
- Discover: search live Twitch channels by language, category, name, and viewer count.
- Decide with chat:
!roulettestarts a session, viewers use!voteto choose a language, and RaidSphere picks a channel in that language.!cancelstops it. - Follow the raid: an arc on the globe shows the route from one channel to the other.
- Talk across languages: RaidSphere has a built-in chat translator. After a raid arrives, a temporary translation window opens on the streamer's overlay. Messages written in another language are automatically translated into the language the streamer speaks and appear as on-stream bubbles, keeping emotes and Twitch terms intact. This lets raiders take part in the chat even if they don't speak the streamer's language, including viewers who stayed simply because they enjoy the content.
- Spin the roulette: the streamer prepares candidates manually or lets RaidSphere pick 6–7 live channels automatically, then spins and starts the raid from the control room.
How we built it
RaidSphere is a TypeScript modular monolith with a Fastify and WebSocket server, a Vite and globe.gl overlay, and shared Zod event contracts. Twitch OAuth, Helix, and EventSub connect it to Twitch, and Azure AI Translator handles translation. It is deployed on Railway.
We used OpenAI Codex across the team to build the project foundation, the simulated Twitch and translation layers, the roulette rules and coordinator, Twitch OAuth and Helix integration, the interactive globe, raid candidate discovery, the EventSub connection, live chat, registered candidates, the real raid adapter and the Azure translation integration. We kept project rules in AGENTS.md so that the agent worked under the same security limits as the team. We also use Claude Code to support part of the integration with Twitch, originally developed by Codex, primarily for conducting various types of testing, documentation tasks, and prompt engineering.
Challenges we ran into
- Unreliable networks: a raid request can time out after Twitch has already accepted it. We never retry blindly, and we report an uncertain outcome instead of guessing.
- Live connections: EventSub needs its own keepalive, reconnection, and token handling for each streamer.
- Translating chat: a translator doesn't know Twitch. It turned the French word "chat" into "cat", so we protect emotes and Twitch terms during translation.
- OBS: the overlay must stay transparent and light while a game runs, so the globe pauses when nothing is moving.
- Deployment: a Railway deployment issue forced us to move development partway through the hackathon, from
Articnn/RaidspheretoAxelOrtegaCota/Raidsphere-v2. We did not restart: v2 is a copy of the original codebase, and every later phase was built there through pull requests from all four team members. The original repository keeps the early Phase 1 work.
What we learned
The hard part of a live integration is not the successful path. It is deciding what to tell the streamer when the result is unknown. We also learned that clear written rules make AI agents far more useful, and that a feature only counts as done once it has been tested on real Twitch.
What's next
We now have real raids between live channels, chat voting through EventSub, and a spinning roulette with manual and auto modes, all running on our live deployment. Next, we want to:
- Smarter auto roulette: instead of only picking channels with a similar audience, build a ladder with one channel per audience size, from 0–10 viewers up to over 1,000, so streamers discover communities of every size.
- Test translation at scale: run chat translation and moderation with more viewer accounts and more languages in real raids.
- Clearer raid feedback: show the streamer exactly why Twitch refused a raid, such as the target's raid settings or a raid already in progress.
- Raid history: add persistence so communities can look back at where they have raided and who raided them.
Our biggest planned feature is a flag competition powered by channel points. When entering the roulette, a streamer will choose a country on the globe. As viewers spend channel points, the streamer's flag will be drawn there little by little until it reaches a goal. Reaching the goal won't end the competition: viewers will have to keep contributing for that flag to stay on top of its rivals. All of the world's flags will be available, giving communities a symbolic way to support their favorite streamers.
Built With
- azure-ai-translator
- css3
- fastify
- globe.gl
- html5
- node.js
- obs-studio
- openai-codex
- railway
- three.js
- twitch
- twitch-eventsub
- twitch-oauth
- typescript
- vite
- vitest
- websockets
- zod