Animated series
How "Life of an Indie Maker" runs as a series, and how to start yours
Twelve episodes, two seasons, the same three characters every time, each episode built on something that really happened that week. A cartoon series produced with consistent characters, script-to-video and the Revid CLI, on a weekly rhythm. This draft infers the recipe from the published episodes.

Cosa ha fatto questo video
12
2
Running on YouTube since June 2026. This one is about consistency and cadence rather than reach: the same cast, one episode per real event.
Watch the seriesCosa creerai
- A recurring cast (a founder, his wife, his best friend) that looks identical in every episode and every scene
- A repeatable episode structure you can write in an hour from whatever happened this week
- A locked visual style, aspect ratio and caption look, so episodes feel like one show
- One payload per episode where only the script changes, rendered from the CLI
- A naming and publishing rhythm that YouTube, and your own website, can pick up automatically
Cosa ti serve
- A Revid account with credits (a 2 to 3 minute episode is the most expensive thing in this university, always run the estimate first)
- Node 18+ for the CLI: `npm i -g revid-cli`, then `revid auth login`
- One reference image per recurring character (a clean full-body sheet on a plain background is ideal)
- A series bible: who the characters are, what the show is about, what every episode must contain
- A YouTube channel, and a real event to build the first episode on
Strumenti usati
La ricetta
7 steps, in the order they happened
- 1
Passo 1
Write the series bible before episode one
A series is a promise. Decide the cast, the tone, the runtime and the ending before you generate a single frame.
Every episode of Life of an Indie Maker follows the same contract: an animated founder called Tibo who cannot stop shipping, a wife who wants him home, a best friend who enables him, one thing that really happened in tech that week, and a closing jingle. Two to three minutes, landscape, yellow captions. Because the contract never moves, an episode is written in an hour and viewers know exactly what they are getting.
The series bible, one screenSHOW Life of an Indie Maker LOGLINE The gloriously unhinged life of building software on your own. CAST TIBO founder, glasses, stubble, "SHIP IT" tee. Ships first, thinks later. HONEY his wife, red hair. The voice of reason, always on the phone. ROB his best friend, beard and hoodie. Enables every bad idea. RULES One real event per episode (a launch, a model release, a conference). Tibo gets a terrible idea from it. Someone tells him he will get sued. It ends with a small number ($100 MRR) and the jingle. RUNTIME 2 to 3 minutes, landscape, captions on. JINGLE "This is the life of an indie hacker. Build it up, watch it crash, then I come back faster."The event is the episode
Season 1 covers Coachella, Google I/O, the Claude Fable 5 release, a trip to Vietnam, a bad hire. Season 2 opens with a vibe-coded Spiderman and a home robot. Nothing is invented from scratch; the news gives you the plot, the cast gives you the jokes.
- 2
Passo 2
Build the cast once, as consistent characters
One reference image per character. The face, hair, glasses and outfit then hold across every scene and every episode.
This is what makes a series possible at all. Upload one clean image per recurring character under AI characters in Revid. From then on, any scene that lists that character keeps the same look, whether Tibo is at a gala, on a reference sheet, or hunched over three monitors. The three images below are the same character across three generated settings.

Same character, black tee, at a gala 
The reference sheet: plain background, full body, the tee that became the uniform 
Same character, at work, different mood Build the supporting cast the same way. Honey and Rob appear in most episodes, so they get their own characters. Guests who show up once (a founder friend making a cameo) can be a one-off reference image instead of a saved character.

Honey: red hair, warm living room, always on the phone 
Two saved characters in one generated shot, both still themselves Read your character IDscurl -s https://www.revid.ai/api/public/v3/consistent-characters \ -H "Authorization: Bearer $REVID_API_KEY" | jq '.[] | {id, name}'The whole cast, in every episode"characterIds": ["chr_tibo_xxxx", "chr_honey_xxxx", "chr_rob_xxxx"]Reference sheet, not a still from a scene
A full-body shot on a plain background with the default outfit gives the model the most to hold on to. Scenes with props, other people or dramatic lighting make worse references even when they look better.
- 3
Passo 3
Turn this week's event into a script
Same beats every time. Cold open, the wife, the event, the terrible idea, the crash, the jingle.
Episode one is a good template because it is the simplest. Tibo finishes an MVP, Honey calls, Justin Bieber turns out to be "using Revid" at Coachella, Tibo decides to build AI clones of performers, Honey tells him he will get sued, and it all ends on "All this for a $100 MRR?" before the jingle. Write it as dialogue with a speaker in front of every line, because each character gets its own voice at render time.
S01E01 beat sheet (2:16)COLD OPEN 0:00 TIBO: Yes, MVP done. ROB: You already have like nine. B-STORY 0:20 HONEY calls. Tibo claims he delegated everything to his AI agent. THE EVENT 0:55 Coachella on TV. "Justin Bieber is using your product." THE IDEA 1:20 TIBO: What if I build an AI that clones your favorite artist? THE CRASH 1:40 HONEY: You're going to get sued. ROB: All this for $100 MRR? JINGLE 1:55 "This is the life of an indie hacker..."episodes/S01E01.txt (excerpt)TIBO: Yes, MVP done. ROB: What now, Thibault? TIBO: I just launched a new product. ROB: You already have like nine. Why does an extra one excite you? TIBO: There's nothing wrong with adding one more to the empire. HONEY: Hi honey. You're not overworking again, right? TIBO: No, no. I delegated everything. To my AI agent.Lines you can say in one breath
Short lines cut better, caption better and are cheaper to fix. If a line needs a comma to breathe, split it across two characters. The running gags ("honey", "you will get sued", the tiny MRR number) are what make it feel like a series rather than twelve separate videos.
- 4
Passo 4
Lock the look
One preset, one aspect ratio, one caption style, chosen once and never touched again.
Consistency in a series is three settings that never change: the visual preset, the frame, the captions. The show uses a clean 2D cartoon look, landscape for YouTube, and bold yellow captions at the bottom. Pick these on episode one by rendering a single scene in the candidate presets, then freeze them.
The style block that every episode shares"aspectRatio": "landscape", "media": { "type": "ai-video", "quality": "pro", "mediaPreset": "RECRO_CARTOON" }, "captions": { "enabled": true, "position": "bottom" }Test three presets on one scene before you commitfor p in RECRO_CARTOON FLAT_ANIMATION ILLUSTRATION; do revid create --payload scene-test.json --set media.mediaPreset=$p --json done revid presets --json --limit 100 # the full list, with the model tiers that support characters
The end of season 2, episode 2: same Tibo, same look, a new robot cast member. Twelve episodes later the style has not drifted. The preset here is an educated guess
The exact preset behind the published episodes is not stated anywhere public. RECRO_CARTOON is the closest match by eye. Run the three-preset test above with your own characters and pick what holds their faces best; that matters more than matching this show.
- 5
Passo 5
Render the episode from one payload
Script verbatim, the whole cast, the locked style, one voice per character, sound on. Estimate first.
The script must be spoken as written, so the workflow is script-to-video, not prompt-to-video. Voices: pick one per character from the voice list and keep the mapping in the series file. Sound effects on, music off in the render (the jingle is a fixed audio file you add at the end, see the last step).
episodes/S01E01.json{ "workflow": "script-to-video", "aspectRatio": "landscape", "source": { "text": "TIBO: Yes, MVP done. ROB: What now, Thibault? ..." }, "characterIds": ["chr_tibo_xxxx", "chr_honey_xxxx", "chr_rob_xxxx"], "media": { "type": "ai-video", "quality": "pro", "mediaPreset": "RECRO_CARTOON" }, "voice": { "voiceId": "voice_tibo_xxxx" }, "captions": { "enabled": true, "position": "bottom" }, "music": { "enabled": false }, "options": { "soundEffects": true, "promptTargetDuration": 135 }, "render": { "resolution": "1080p" } }Validate, price, renderrevid create --payload episodes/S01E01.json --dry-run --json # validates, spends nothing revid credits --payload episodes/S01E01.json --json # cost estimate for a 2:16 episode revid create --payload episodes/S01E01.json --wait --output renders/S01E01.mp4Episodes are long, so estimates matter
A launch video is under two minutes; an episode can be four. Cost scales with scenes, and pro quality with three characters in frame is not the cheap end. Render the first episode at pro, not ultra, and only go up once the season is working.
More than one voice
If your plan renders with a single narration voice, keep the speaker labels in the script and give each character their own voice in the editor afterwards; the labels make that a two-minute job. Where per-character voices are available, map them in the series file and pass them with the characters.
- 6
Passo 6
Make every next episode a copy, not a rewrite
One series file holds the cast, the style and the voices. An episode is that file plus a new script.
The reason the show reached twelve episodes is that episode seven took the same effort as episode two. Keep everything that never changes in one file, and generate an episode by combining it with the script of the week.
series.json + a script = an episode# series.json holds characterIds, media, captions, voice, render; episodes/*.txt hold the dialogue for ep in episodes/S02E0*.txt; do name=$(basename "$ep" .txt) revid create --payload series.json --set "source.text=$(cat "$ep")" --json > "renders/$name.pid.json" done # then, as a second pass: for f in renders/*.pid.json; do revid wait "$(jq -r .pid "$f")" --output "${f%.pid.json}.mp4"; doneGuests without breaking the cast
Season 1 has cameos from other founders. Give a guest a one-off reference image on that episode only, so they look right once without polluting the saved cast. Recurring additions, like the robot in season 2, become a saved character.
- 7
Passo 7
Publish on a rhythm the machines can follow
A strict title format turns a pile of uploads into a show, on YouTube and on your own site.
Every episode is titled the same way: season and episode number, a colon, then the title. It reads like a show in the YouTube sidebar, and it is machine-readable: the Revid landing page pulls the series rail straight from the channel and only picks up videos that follow this format. Trailers and shorts are skipped on purpose.
Titles that both people and parsers understandS01E01: Justin Bieber Using Revid at Coachella (Life of an Indie Maker) S01E06: Claude Fable 5 Fever (Life of an Indie Maker) S01E09: who stole Tibo's supercomputer? (cont. episode 07) ft. @levelsio @marc-lou S02E01: Tibo vibe coded his own SpidermanDescription templateLife of an Indie Maker is an animated series about the gloriously unhinged life of building software on your own. It is based on Tibo's life as an indie maker. S01E01: Justin Bieber is at Coachella. Subscribe for new episodes. Things only get weirder from here. X: x.com/tibo_makerAdd the jingle in the editor as the last thing before export (same file, same length, every time), post the episode natively on YouTube, then cut the best 30 seconds as a vertical clip for X and TikTok with a link to the full episode.
Ship the episode you have
Season 1 has episodes at 1:25 and at 3:55. Nobody noticed. A weekly episode that exists beats a perfect one that does not, which is also, conveniently, the moral of the show.
Or let an agent run the show
Once the series file exists, an episode is a script and two commands. That is exactly the shape of work an agent is good at: read what happened this week, write the script against the series bible, dry-run, ask you to approve the estimate, render, and hand you the file with the title already formatted. Revid ships an MCP server and a skills file, so Claude or Codex can do this from one message.
revid guide --json # teaches the agent the CLI and the API
revid guided --json --goal "Write and render S02E03 of Life of an Indie Maker from series-bible.md and this week's news in news.md: same cast (series.json), 2 to 3 minutes, landscape, end on the jingle. Dry-run and show me the estimate before rendering."The agent does not need taste to be useful here; the bible carries the taste. What it adds is that the episode gets made on Tuesday whether or not you felt like it, which is the only reason series survive past episode three.
Pronto a creare il tuo?
Stessi strumenti, stessa ricetta. Parti dallo strumento di questo tutorial, o installa la CLI e lascia che un agente faccia i click.