One Substrate, Two Renderers

I built a tool that generates demo videos from a running system, then decided not to productise it. Separately, I keep a backlog of blog posts seeded from postmortems. It took me an embarrassingly long time to notice these are the same pipeline with different output formats. The shape Both do this: source of truth → verify the claim → scrub what identifies the client → structure → publish For a video, that reads: query the production database and run the deployed models → confirm every number can be re-derived by a command → replace client identities with stable pseudonyms and prove nothing leaked → lay out scenes and narration → render an MP4. ...

August 22, 2026 · 4 min · Leandro Garcia

The Demo Video Was the Easy Part

I needed demo videos for two pre-revenue products: one that reads supplier invoices and computes per-product margins, one that watches trucks leave a quarry and classifies what they’re carrying. No budget for an agency. So I built them with an agent, ffmpeg, a headless Chromium and a free text-to-speech voice. The rendering pipeline took an afternoon. Everything else took two days, and none of it was video work. The problem isn’t generation Script-to-video is a solved commodity. Synthesia will turn text into a presenter for about USD 18/month. Arcade will turn a screen recording into a guided demo for USD 32. Both are good at what they do, and neither touches the part that actually costs anything. ...

August 8, 2026 · 7 min · Leandro Garcia

What Dogfooding an MCP Server Taught Me About Tool Output

I built an MCP server that searches flights across flexible dates and multiple airports, then used it for an actual trip I was planning. Three tool calls in, it had produced a correct answer, and along the way had wasted most of a day’s API quota and told the agent several things that weren’t true. None of the four problems was a crash. Every one of them was a shape problem: the output was well-formed, plausible, and misleading. That’s the failure mode that matters when your consumer is a language model, because an agent can’t smell that a number is wrong. It acts on whatever you hand it — and when the number is wrong in an expensive direction, it acts again. ...

August 3, 2026 · 7 min · Leandro Garcia