< Back to projects
speakingChallenge
Impromptu speaking practice.
TypeScriptReactNext.jsTailwindRadix/shadcnVercel
Why I built this
I wanted to get better at speaking off the cuff: a random topic, one minute, and words to incorporate mid-speech. Difficulty changes reveal timing, not total duration.
How it works
setup → countdown → timed prompt reveals → finishedA state machine (idle, countdown, playing, finished) drives the game. The topic bank has 35 debate-style prompts. Five words appear during the 60-second round. Creator mode mirrors the front camera with delayed reveal and flash overlay.
Decisions
State machine over scattered timers
Explicit states keep countdown, playing, and finished behavior easy to reason about.