Community Spotlight, Vibe Coding
Community Spotlight: David Geisert on building an AI Video Production App

As someone who's always worked at the frontier of emerging tech - from working on FarmVille at Zynga to spatial recognition for Meta's VR and the Orion AR team - it's no surprise David Geisert was an early adopter of vibe coding. His latest venture, Story Machine, is an AI video production platform born from that "vibe coding" approach.Join the Vibe Coding Community
Swap builds, trade feedback, and ship faster alongside other people vibe coding.
From Rapid Prototypes to Production-Ready Vibe Coding
While David has a technical background and didn't start from zero, David wasn't writing production code in his previous roles. The focus was on building functional prototypes, fast.
"My role was a prototyper," David explains. "I was working to technically build out things as quickly as possible, but my code never had to go to production. I just had to make it work."
This prototyping mindset became his superpower when AI coding tools emerged. While other prototypers at Meta created clickthroughs and mockups, David built working systems. For the Orion AR glasses demo, he created a recipe flow that recognized food items in 3D space, identified ingredients like pineapples and lentils, and recommended recipes using an LLM—all functional, all working.
"My role was a prototyper," David explains. "I was working to technically build out things as quickly as possible, but my code never had to go to production. I just had to make it work."
This prototyping mindset became his superpower when AI coding tools emerged. While other prototypers at Meta created clickthroughs and mockups, David built working systems. For the Orion AR glasses demo, he created a recipe flow that recognized food items in 3D space, identified ingredients like pineapples and lentils, and recommended recipes using an LLM—all functional, all working.
The vibe coding ethos really meshed well with that prototyping ethos. We need this to work, we need it to work quickly. How can we get that to happen?
The Learning Curve: From Unity to Web
David spent 12 years building with Unity, creating AI integrations that were used internally. Everything from LLMs and multimodals to image generation, video generation, and 3D model creation.
But when he left Meta in May 2025 to build Story Machine, he faced a new challenge: web development.
"TypeScript is very different from Unity. In Unity, the system automatically checks and updates components every frame—you don't have to think about state management. But in React, you have to manually control when things update and re-render."
If you're building things like simple forms with a submit button, it's straightforward. But for his platform—with real-time AI generations, long-running processes, and auto-saving features—managing state becomes much more complex. Get the timing wrong, and you'll see weird bugs like data flashing back to old values or updates happening in the wrong order.
The transition meant there was a learning curve. But David's approach stayed consistent: move fast, iterate, and don't be precious about your code.
He tries solutions repeatedly, discards what doesn't work, and starts fresh rather than piling on instructions. That throwaway method keeps the codebase clean and avoids the bloat that comes from endless patches and console logs.
"If you try to just go through a giant conversation trying to fix this one little thing, it's going to throw in tons of extra console logs, tons of extra patches that didn't work. That now makes your code really hard to use."
But when he left Meta in May 2025 to build Story Machine, he faced a new challenge: web development.
"TypeScript is very different from Unity. In Unity, the system automatically checks and updates components every frame—you don't have to think about state management. But in React, you have to manually control when things update and re-render."
If you're building things like simple forms with a submit button, it's straightforward. But for his platform—with real-time AI generations, long-running processes, and auto-saving features—managing state becomes much more complex. Get the timing wrong, and you'll see weird bugs like data flashing back to old values or updates happening in the wrong order.
The transition meant there was a learning curve. But David's approach stayed consistent: move fast, iterate, and don't be precious about your code.
He tries solutions repeatedly, discards what doesn't work, and starts fresh rather than piling on instructions. That throwaway method keeps the codebase clean and avoids the bloat that comes from endless patches and console logs.
"If you try to just go through a giant conversation trying to fix this one little thing, it's going to throw in tons of extra console logs, tons of extra patches that didn't work. That now makes your code really hard to use."
The Tool Stack Evolution
July 3rd: Founded company
July 10th: Unity beta launched
July 28th: Switched to web (just two weeks later, better for distribution compared to a desktop app)
August 9th: First web beta users
July 10th: Unity beta launched
July 28th: Switched to web (just two weeks later, better for distribution compared to a desktop app)
August 9th: First web beta users
Lovable: The 0-to-1 Champion
Lovable is the best at going from 0 to 1 from all the tools that I've tried out. It gives a great start not just to the layout of the website, but also gives really good integrations with Supabase, GitHub, and lets you set up the entire environment.
But Lovable hit limits:
With just a single conversation history that just goes and goes, it's really hard to go very far with it. You'll get a great baseline, and then it's time to switch away.
Cursor vs. Claude Code: Pick Your Battle
David now uses both strategically:
Cursor for human-in-the-loop iteration and his "try it out, throw away" workflow
Claude Code for large, autonomous tasks where he's confident about the outcome
"A good example is video model integration. I say, 'Here's a currently working integration for a video model on my platform. Here's all the documentation for this new video model. Make a new endpoint for that new video model,' and I'll just let it run. I'll come back later and test it, and usually it works."
Cursor for human-in-the-loop iteration and his "try it out, throw away" workflow
Claude Code for large, autonomous tasks where he's confident about the outcome
"A good example is video model integration. I say, 'Here's a currently working integration for a video model on my platform. Here's all the documentation for this new video model. Make a new endpoint for that new video model,' and I'll just let it run. I'll come back later and test it, and usually it works."
When Vibe Coding Hits Its Limits
After beta testing (his strategy: over-the-shoulder live demos to understand real problems), David identified several walls:
1. Staging Environments
Lovable offered decent frontend staging, but provided no backend staging support. David hired a DevOps‑savvy engineer to set it up, making backend staging the first priority.
2. Race Conditions
AI didn't understand race conditions at all. When dealing with AI generation, there are long periods of time that things need to wait. Video generation can take up to five minutes—or in Sora's case, 54 minutes. There's all sorts of things that can happen in the meantime that could cause weird problems.
3. Frontend vs. Backend Logic
Early iterations pushed too much automation into the frontend. If a user navigated away—say, hitting the back button—processes stalled because they were tied to the active page. Moving those workflows to the backend took effort but solved the reliability gap.
4. The Unknown Unknowns
"If you don't know to ask for it, the AI is not going to know to tell you about it either. It's not going to just bring up, 'Oh, you're trying to do this. Here's a great plugin that you would probably really want to use.'"
1. Staging Environments
Lovable offered decent frontend staging, but provided no backend staging support. David hired a DevOps‑savvy engineer to set it up, making backend staging the first priority.
2. Race Conditions
AI didn't understand race conditions at all. When dealing with AI generation, there are long periods of time that things need to wait. Video generation can take up to five minutes—or in Sora's case, 54 minutes. There's all sorts of things that can happen in the meantime that could cause weird problems.
3. Frontend vs. Backend Logic
Early iterations pushed too much automation into the frontend. If a user navigated away—say, hitting the back button—processes stalled because they were tied to the active page. Moving those workflows to the backend took effort but solved the reliability gap.
4. The Unknown Unknowns
"If you don't know to ask for it, the AI is not going to know to tell you about it either. It's not going to just bring up, 'Oh, you're trying to do this. Here's a great plugin that you would probably really want to use.'"
Collaboration in the Vibe Coding Era
David recently hired two junior engineers, and the collaboration is going smoothly so far.
To collaborate, they're pulling requests into staging for small features, and that works well. Merge conflicts still happen, but AI makes recovery faster: "After merging, we can ask the AI just to redo it because we now have the reference of when it worked. We say, 'Put this feature back in. Here's the code for when it was working,' and slot it into all the code we had updated."
He's still doing a lot of the coding, but the engineers handle what AI struggles with: DevOps, architectural decisions, and those second-order unknowns.
To collaborate, they're pulling requests into staging for small features, and that works well. Merge conflicts still happen, but AI makes recovery faster: "After merging, we can ask the AI just to redo it because we now have the reference of when it worked. We say, 'Put this feature back in. Here's the code for when it was working,' and slot it into all the code we had updated."
He's still doing a lot of the coding, but the engineers handle what AI struggles with: DevOps, architectural decisions, and those second-order unknowns.
Building Something Complex
Story Machine might be one of the most complex vibe-coded products out there. The platform takes you from a simple prompt to a fully realized video, with:
• Automatic shot list generation
• Consistent asset creation (keeping that character or home office consistent across scenes)
• Multiple AI model integrations for image and video generation
• A full web-based video editor (yes, vibe coded)
• Detailed credit tracking across different AI services

"I like to claim it's one of the most complex AI vibe coded products," David says, pulling up the interface to show how it parses references, maintains style consistency, and manages generations across the backend.

• Automatic shot list generation
• Consistent asset creation (keeping that character or home office consistent across scenes)
• Multiple AI model integrations for image and video generation
• A full web-based video editor (yes, vibe coded)
• Detailed credit tracking across different AI services

"I like to claim it's one of the most complex AI vibe coded products," David says, pulling up the interface to show how it parses references, maintains style consistency, and manages generations across the backend.

What's Next: The Moonshot
Starting November, David is attempting something ambitious: creating the first full-length AI-generated movie (at least 90 minutes).
His math: At a 20:1 compression ratio (20 minutes of effort equals one minute of good footage), with multiple regeneration passes and clips that need trimming, he estimates about $5,000 in generation costs.
"If I pull it off? Yeah, that's pretty good marketing," he laughs.
His math: At a 20:1 compression ratio (20 minutes of effort equals one minute of good footage), with multiple regeneration passes and clips that need trimming, he estimates about $5,000 in generation costs.
"If I pull it off? Yeah, that's pretty good marketing," he laughs.
The New Building Paradigm
David's story shows how far vibe coding can take you. He went from zero web development experience to building a complex, multi-model AI video platform in months—handling frontend, backend, database integrations, and multiple AI APIs.
His advice echoes his prototyping background: understand the problem users are actually trying to solve, iterate quickly, throw away what doesn't work, and recognize when you need someone who's solved this specific problem before.
As David puts it: "I have a massive amount of experience in those quick feedback and iteration cycles that vibe coding enables at production scale."
You can build complex, production-grade products without a traditional engineering background. And when you do need to collaborate with engineers, you're doing it as an informed builder—not handing over control.
Try Story Machine for free at storymachine.ai
What challenges have you hit with vibe coding? Join the conversation in our community.
His advice echoes his prototyping background: understand the problem users are actually trying to solve, iterate quickly, throw away what doesn't work, and recognize when you need someone who's solved this specific problem before.
As David puts it: "I have a massive amount of experience in those quick feedback and iteration cycles that vibe coding enables at production scale."
You can build complex, production-grade products without a traditional engineering background. And when you do need to collaborate with engineers, you're doing it as an informed builder—not handing over control.
Try Story Machine for free at storymachine.ai
What challenges have you hit with vibe coding? Join the conversation in our community.