Inspiration
Chat can do more than vote on what happens next. We wanted viewers to cause an absurd disaster, see how their choices shaped it, and work together to fix it—giving the streamer a shared story to react to.
What it does
Chat, Explain Yourselves is a Twitch-connected participation game built around cause, receipts, and repair.
Viewers choose departments using !refund, !inflate, and !launch. Each participant has one active assignment and can switch before voting closes. Tallies stay sealed until reveal. The game then reveals the consequence and voting receipts. Viewers enter damage control using repair commands to reach the scenario’s required balance.
A private local host panel manages rounds. A separate read-only browser overlay presents gameplay without authorization buttons or host controls.
How it was built
The project uses JavaScript, Node.js, Twitch authorization, and EventSub chat events. The local server owns game state and separates private controls from the presentation overlay. Codex assisted iterative implementation and testing of game flow, Twitch integration, authorization lifecycle, and failure handling.
Challenges
Repeated messages must not multiply a viewer’s influence. Delayed events must not rewrite closed rounds. Connection failures must stop gameplay rather than produce misleading results. Authorization details must stay out of the presentation overlay.
Accomplishments
All 131 automated tests passed on the developer’s Mac using Node 24.21.0. A genuine single-account Twitch test completed !refund → consequence reveal → !anchor → successful repair. The browser overlay displayed the completed result without host controls. Disconnect reported access-token revocation, and the application was absent from Twitch Connections afterward.
What we learned
An entertaining audience mechanic needs clear consequences and dependable boundaries. The receipts turn chat choices into a shared story; the repair phase gives viewers a second reason to participate.
What’s next
Separate-viewer and OBS integration checks, live connection timing measurements, and larger-audience testing remain validation goals. A routine Twitch reconnect currently ends the session. This is a local prototype, not a production reliability claim.
Built With
- javascript
- node.js
- openai-codex
- twitch

Log in or sign up for Devpost to join the conversation.