Inspiration

Live viewers get a moment to decide before they know the answer. Later viewers usually lose that opportunity. We wanted to preserve the decision, then help the later viewer understand what happened and why. The goal is learning and fun: think first, make a personal choice, and learn from the real continuation. Creators can use their own or authorised recordings: a game challenge, chess explanation, coding session or educational demonstration.

What it does

A creator opens an A/B round connected to Twitch chat. One first-accepted response counts per account. Locking freezes the original history. The creator records the actual host choice and outcome, uploads an authorised MP4, selects separate setup and reveal segments, then reviews the encoded video, sound, captions and text alternatives before publication.

A later viewer watches setup, chooses, then accesses the recorded reveal and comparison. That personal choice never rewrites the video or original responses. Reveal media, captions and results are gated by the saved session choice. Editing creates a new revision and resets approval; the full master remains private.

The demonstration

Our main example independently reconstructs Morphy's Opera Game, Paris 1858. A viewer chooses whether to offer the queen or keep it, then sees the historical continuation and an explanation of piece coordination. Both options are legal; this is reflection, not an AI-graded puzzle.

The host's B is explicitly a coached demonstration selected with assistant help, distinct from Morphy's historical A. The chess rehearsal used one operator-controlled Twitch account in offline chat and froze A=0/B=1. A later personal A choice leaves that history unchanged. The video omits the old colour question/options using synchronized crops of the original status and command/count/lock footage, and labels JZ2J as an earlier real chat/lock rehearsal and RF6S as the separately recorded chess example. Saved RF6S creator settings and publication status are shown without making a new upload or edit; its reveal thumbnail is explicitly masked in this walkthrough until the replay payoff. No independent audience, public broadcast, celebrity participation or original broadcast footage is claimed.

The opening introduces learning and entertainment uses, including science as a proposed illustration. The demo also shows three individual illustrations using the existing player interface: an original programming snippet, an original geography diagram, and a frame from our original game. They are browser-only presentation samples, not recorded Twitch sessions, correctness results or adoption evidence. Their player, question and option crops are enlarged and rearranged for legibility in the video; this is editorial framing, not a new application layout. No third-party creator videos were downloaded.

How it was built with Codex

Codex helped implement and verify the state machine, Twitch OAuth/EventSub adapter, atomic voting/locking, private media processing, session-gated replay, accessibility, regression tests and judge setup. The video includes actual development footage of a caption-readability issue being identified, corrected and checked.

The application uses TypeScript, React/Vite, Fastify, SQLite and bounded FFmpeg workers. Vitest checks domain/API behavior; Playwright exercises browser workflows. Codex is a development tool, not a required runtime AI service.

Challenges and accomplishments

Spoiler prevention needs separate encoded files and server authorization, not just a paused player. Unexpected chat outages must interrupt an open round instead of producing a misleading tally. Reconnect, late-vote rejection and exact-file media review required careful testing.

The local upload → review → publish → choose → reveal workflow works. Genuine Twitch rehearsals, including two user-operated accounts, test technical behavior rather than an independent audience. An Android phone completed basic replay, persistence and orientation checks. Clean-source setup passed on the existing machine; a separate computer remains untested.

Recorded synthetic local load checks accepted 1,000 valid votes in 30 seconds at 2.62 ms p95 transaction time, and ten local video clients passed. These are local measurements, not public-host capacity claims. Dated evidence and limits are in the repository.

What's next

The MVP supports one allowlisted creator, two choices and manual recording/review. The closing distinguishes the working single-creator local prototype from proposed hosted media, additional creators and scaled encoding workers. Production capacity remains unverified. Independent viewers, remaining human screen-reader/magnified-flow acceptance, a fresh-computer installation and public-host testing remain. Hosting is deferred. Residual platform/security and binary-distribution work is documented; no vulnerability-free or full-WCAG claim is made.

Credits: presentation voice-over by Anish (user-supplied recordings); retained chess setup/reveal narration by synthetic Microsoft Zira Desktop. Original project visuals/script, built with Codex. Independent reconstruction of Morphy vs Duke of Brunswick and Count Isouard, Paris 1858. References: https://www.chesshistory.com/winter/extra/morphy.html and https://www.chessgames.com/perl/chessgame?gid=1233404

Built With

Share this project:

Updates

Submission history