-
-
Pick a mode and one of six topics. Topics apply to facts, definitions and alternating Mixed Bag rounds.
-
Chat sees the question first and privately submits a convincing lie. Answers can be edited before the timer closes.
-
The streamer finally sees the question with five choices: one real answer and four convincing alternatives.
-
CHAT DID IT!! A wrong pick gives chat the point, reveals the sourced truth, and triggers the mascot celebration.
-
The native ChatDidIt Twitch panel installed on the test channel. Extension status: Local Test; public review pending.
Inspiration
Twitch chat is often the most entertaining part of a stream. We wanted to turn that energy into the game itself: one streamer searching for the truth while their community works together to fool them.
ChatDidIt gives viewers a direct role in creating the challenge. Their creativity becomes the gameplay, building toward a reveal everyone can react to together.
What it does
ChatDidIt is a live deception game show for streamers and their communities.
The streamer picks a mode and topic, then starts the show:
- Fact or Fiction: viewers invent convincing wrong answers to a factual question.
- Define That!: viewers write fake definitions for real words.
- Mixed Bag: rounds alternate between both modes. Six topics—Gaming, Movies, Weird Facts, History, Science and Anything Goes—apply to both facts and definitions.
Chat sees the question first while the streamer waits in suspense. Viewers privately submit and edit their lies before the timer closes. OpenAI helps turn those submissions into a readable set of choices containing one genuine answer.
The streamer then sees the question, chooses an answer and locks it in. If they fall for a lie, chat scores and the game celebrates with “CHAT DID IT!!” The reveal includes the correct answer and a supporting source.
Automatic rounds, scoreboards, sound effects, a mischievous lime mascot and an OBS overlay make the experience feel like a game show.
How we built it
We used OpenAI Codex throughout development, starting with a product specification and refining the game through natural-language feedback, implementation and playtesting.
Codex helped build the React and TypeScript frontend, Fastify backend, game state machine, private submission APIs, tests and deployment tooling. Parallel development covered frontend, backend and Twitch integration, followed by checks in the browser and deployed application. ImageGen created the original artwork and mascot.
The backend runs on Google Cloud Run, with Firestore storing game state and private answers. Cloud Tasks drives durable round deadlines, and Secret Manager stores credentials.
OpenAI helps curate audience submissions through moderation and structured semantic grouping. Exact duplicates are grouped first, and a bounded shortlist of at most 100 distinct candidates per round goes through AI processing. This avoids making a separate AI request for every viewer. Curated alternatives provide a fallback if AI selection fails.
Twitch integration includes broadcaster OAuth, verified EventSub chat delivery and a native Panel/Mobile Extension configured for Local Test.
Challenges we ran into
The biggest challenge was keeping information fair across different screens. Chat needs the question before the streamer, but neither side should receive the genuine answer or another viewer’s private submission before the reveal. We addressed this through separate server responses, identity checks and REST/SSE tests.
Automatic progression also required reliable backend timing. Rounds needed to continue even when no browser was connected, while simultaneous requests could not advance the same round twice. Server-controlled deadlines and transactional state changes helped solve this.
Another challenge was turning many similar audience answers into a small set of distinct, convincing choices without losing their creativity.
Accomplishments that we're proud of
- A deployed, playable game with six topics, automatic rounds and a distinctive visual identity.
- Private audience submissions, delayed streamer question visibility and sourced answer reveals.
- Real Twitch sign-in, an installed Local Test Extension and verified EventSub chat delivery.
- A production round using actual OpenAI answer selection.
- 32 passing automated tests, plus Extension API and live-update smoke checks.
- A synthetic backend test with 10,000 simultaneous live-update connections and 10,000 submissions. That capacity result validates the tested transport and submission paths; it does not establish end-to-end performance with 10,000 real Twitch viewers.
What we learned
A live audience game is as much a synchronization and identity problem as a design problem. Question visibility, private answers, timers and scoring all need server-side rules.
We also learned that AI works best here as a bounded curation step. Deduplication, moderation, structured outputs and fallback behavior make audience creativity easier to turn into dependable gameplay.
Working with Codex let us iterate quickly, while tests and real integration checks helped establish what actually worked.
What's next for ChatDidIt
We want to expand the reviewed question packs, playtest with more communities and tune the balance between convincing lies and readable choices.
The Twitch Extension still needs public review, testing with a second real viewer account and validation in the Twitch mobile app. We also plan broader end-to-end load testing with AI processing enabled.
Our goal is to make ChatDidIt a recurring stream segment that is easy to start, fun to watch and shaped by the community playing it.
Built With
- cloud-run
- cloud-tasks
- codex
- css3
- docker
- eventsub
- fastify
- firestore
- google-cloud
- node.js
- openai
- react
- twitch
- twitch-extensions
- typescript
- vite
Log in or sign up for Devpost to join the conversation.