Inspiration

People used to sing or dance to entertain at parties. Now, stand-up comedy is becoming the thing everyone secretly wants to pull off at office parties, birthdays, weddings. But most of us are not comedians, and generic AI-generated jokes sound like generic AI-generated jokes.

Real comedians don't write alone. They have a writers' room: people who pitch, punch up, and most importantly tell them when a joke doesn't work. I wanted to give everyone that room.

What it does

You write one messy paragraph: the occasion, who's in the audience, your true stories as much or as little as you want. Five GPT-5.6 agents then work like a real writers' room, live on screen: a Gig Analyst parses your brief and shows every assumption it makes, a Structurer designs the set, a Punch-Up Writer drafts it, a Test Audience who are personas generated from your actual crowd, from the department head to the nine-year-old cousin. They reacts to every beat and rejects weak ones, and a Director assembles the final set with delivery marks and tips for nervous first-timers. Then you refine in plain language ("make the plant story the closer") and the room goes back to work.

Safety is structural: children in the audience force clean mode, grief-adjacent occasions disable roasting, and the room never invents stories about real people.

How I built it

I wrote my decisions into spec files; Codex (CLI, in VS Code) turned them into code. The first spec produced the working skeleton, orchestrator, six agent prompts, SSE streaming, UI in one session. Every agent is a plain-text GPT-5.6 prompt in the repo's prompts/ directory, exchanging JSON through one shared state object.

Challenges

  • My own product bored me. V1 interviewed users with up to six questions before writing anything. Testing it myself, my answers got shorter each question. By question three I typed "I can't." So I killed the interview mid-hackathon and rebuilt around a single free-text box. Codex executed the pivot from a new spec file without breaking the pipeline.
  • Intermittent API failures. Calls would randomly fail with permission errors while identical calls succeeded. I never found the root cause, instead I instrumented the orchestrator, confirmed the failures were random, and made the pipeline survive them with retries, backoff, and JSON mode.
  • Serverless broke refinement. In-memory sessions died between serverless invocations. The fix made the API stateless: the browser keeps the completed set and sends it back with each refinement.

Accomplishments that I am proud of

  • A solo weekend build that's actually deployed. Five collaborating GPT-5.6 agents, a live-streamed writers' room, and plain-language refinement, running on a public URL, not just localhost.
  • Killing my own feature in time. Recognizing by question three that the interview flow was wrong, and having the spec-driven Codex workflow that made a mid-hackathon pivot affordable for one person.
  • The revision loop works in public. In live runs, the Test Audience rejects a draft with a specific, actionable note, the Punch-Up Writer fixes exactly that beat, and the verdict flips to PASS, visible on screen, every run.
  • The guardrails hold. Ask for edgy jokes at a child's birthday and the room politely refuses. Children in the audience override the user's own request.
  • The jokes are actually usable. Real runs produced lines I'd say on stage. The bar wasn't "AI wrote a joke" , it was "I would perform this."

What I learned

Input quality beats prompt engineering. The same pipeline writes generic observational comedy from a thin brief and a genuinely personal set from one containing two true stories. No prompt tuning moved quality as much as one real story did which reshaped the whole landing page around encouraging true detail.

I also learned to let the audience argue. The Test Audience began as a quality gate and became the heart of the product: watching an HR persona wince at a workplace joke is the demo.

What's next for The Writers' Room

Testing my own set at a real event. If a soft-spoken non-native speaker can make a bar laugh, the room works.

Built With

Share this project:

Updates