This is a submission for Weekend Challenge: Passion Edition
One More Year
What I Built
I built a documentary studio.
Not a template with your name dropped in. An actual small production pipeline that reads four things you tell it, decides what your story is, casts it with real performed voices, builds its own sound design, writes its own score, and prints a real mp4. All in the browser.
Here's the observation it started from. Everyone has one thing they can't quit. Football, chess, a piano someone left them, a side project nobody asked for. And almost none of that ever becomes anything, because turning "the thing I can't stop doing" into something that actually feels like a documentary normally takes a camera crew, actors, a sound engineer, and about a week of editing.
So I tried to compress that whole crew into five automated desks and see how close I could get.
It's called One More Year. You answer four questions. It gives you back a short film with a narrator, you as the subject, and a couple of extra voices pulled from inside your own story: memory, doubt, whatever the piece needs. Every voice is performed, not read. Every sound effect is chosen for that scene. Every score is composed fresh. It's all mixed and encoded into a real video file without a render server ever touching it.
Demo
There's no hosted public demo. That's on purpose. The ElevenLabs key is kept server-side only, so it never reaches browser JavaScript. Hosting it publicly would mean putting my own paid key on the open internet for strangers to spend. So instead, the whole thing runs locally in about two minutes, with your own free Gemini key and your own ElevenLabs key.Why there is no hosted public demo
git clone https://github.com/abbasmir12/onemoreyear
cd onemoreyear
npm install
npm run dev
Open the Press Room, drop in a key, hit Start Your Story. Headphones on.
Code
abbasmir12
/
onemoreyear
An Open Source documentary studio for the things you cannot quit - directed by Gemini, performed by ElevenLabs
ᴏɴᴇ ᴍᴏʀᴇ ʏᴇᴀʀ
An open-source documentary studio for the thing you cannot quit.
Built for the DEV Weekend Challenge: Passion Edition — July 10–13, 2026
Everyone has one thing they can't quit.
Most tools would ask you to write it down. This one asks you to say it out loud — then hands it to a director, a cast, a sound desk, and a print desk, and gets you back a real short film.
What it actually does
You answer four questions. Nothing technical — just what's the thing you can't quit, when did it almost end, why did you stay, and one line only you would say. That's the entire brief.
From there, a real production pipeline runs — not a template filled in, not a single flat voice reading a script. An AI director reads what you gave it, decides what the story actually is, and hands it…
How I Built It
The four questions
The input surface is deliberately tiny.
What's the thing you can't quit. When did it almost end. Why did you stay. One line only you would say. No writing, no script, no timeline editor.
That constraint is the actual design decision. Asking someone to write a story gets you a self-conscious kind of writing. Asking them a direct question at 2am gets you something else entirely.
Five desks, not one prompt
I didn't want this to feel like "type something, get an AI blob back." So I split the work the way a real production would split it.
Four questions. No writing required.
Gemini reads your answers, finds the arc, and writes a full script. It casts a narrator, you, and one or two symbolic voices pulled from inside the story itself.
Every voice is performed through ElevenLabs eleven_v3. Hesitations, corrections, a line that actually breaks where it should.
The director decides what a scene needs, generates that exact effect, then composes an original score through ElevenLabs Music v2.
ffmpeg.wasm mixes every voice, effect, and cue against the frames and encodes a real mp4. Client-side. No render server.
The director doesn't summarize. It directs.
My first version of the prompt just asked Gemini to turn the answers into a short documentary.
What came back read like a summary with quotation marks around it.
Competent. Flat. Forgettable.
What worked instead was telling it to behave like a documentary editor. Find the arc, not the facts.
Cast a narrator and the subject, then add one or two symbolic voices, like memory or doubt. Those voices are explicitly not allowed to invent facts or pretend to be real witnesses.
Write two versions of every line. A clean transcript, and a separate performance string with sparse, motivated imperfections: a repeated word, a false start, a line that catches. Most lines stay clean, so the handful of imperfect moments actually mean something.
Every scene also gets a director-chosen transition. Direct, sound, or silence. The first scene is mandatory sound, because a documentary that opens on a voice mid-sentence with nothing behind it doesn't feel like one.
A few of the real constraints from the production prompt, word for word: "Symbolic voices are fragments of the subject's interior story, not factual witnesses. They must never claim to be a coach, friend, rival, family member, or person who was present." "Never invent a quote, date, injury, achievement, relationship, or event the person did not provide." "Human speech is not polished prose. In only 2 or 3 segments across the entire film, add ONE motivated imperfection. Never sprinkle random 'um' sounds everywhere." "Segment 1 MUST use 'sound' for 4–5 seconds before anyone speaks. Establish the physical world first." "Every film gets a score. If the story calls for restraint, choose 'instrumental' and keep it sparse, rather than skipping the score entirely."Read the actual rules I gave the AI director
The cast, the room tone, the score
Printed with ffmpeg, not on a server
This is the part I'm most proud of.
The final assembly happens with ffmpeg compiled to WebAssembly, running client-side. Timing every voice line against its lead-in. Layering sound effects at the right offsets. Ducking the score under dialogue. Encoding the whole thing to H.264.
No render queue.
No upload and wait.
The browser does the actual video engineering and hands you back a downloadable file.
Prize Categories
https://github.com/abbasmir12/onemoreyear

Top comments (0)