Inspiration

Everyone has a camera roll full of friends and family, and nobody has the time or skills to turn it into a movie. AI video models can now do remarkable things, but using them means prompt engineering, juggling tools and editing clips together. We wanted one line of text and a few photos to be enough.

What it does

  • Cast your movie. Pick 3 to 8 photos of the people you want in it and confirm you have the right to use them.
  • One line of story. "Racing a thunderstorm to the lighthouse", "in a 90s kung-fu film", or leave it blank and VideoVulcan writes one.
  • Pick a style. Epic, Noir or Cartoon.
  • The making-of. Watch your script get written and your cast get framed into the scene, then sit back for the premiere.
  • Your library. Every movie is saved, ready to rewatch and share. Each movie includes one free re-roll.
  • Responsible by default. Every video carries a permanent "AI-generated" mark, uploaded photos are moderated and deleted after 30 days, every movie has a Report button, and you can delete your account in the app or on the web.

How we built it

  • App: React Native + Expo (TypeScript, Expo Router) with Google sign-in, released on Google Play.
  • Payments: the RevenueCat SDK (react-native-purchases) with a custom paywall whose layout is driven by offering metadata, one-time Mint packs and a monthly subscription, and Restore Purchases. RevenueCat's user ID is our server account, so Mints follow you across devices. A signed webhook grants Mints on our server, with idempotency on event ID, store transaction ID and subscription period, plus refund and expiration handling. The Wallet shows the balance and purchase history.
  • AI pipeline: Gemini moderates the photos and writes the script, Gemini 2.5 Flash Image stylizes each cast member for the chosen look, Seedance 2.0 renders the video from those references, and ffmpeg adds a CC0 music bed, the AI-generated watermark and an end card.
  • Backend: a Python (FastAPI) service that runs its AI tools through a private instance of Snippbot, our self-hosted AI agent platform, on the same machine. Long renders are durable workflows that survive restarts. It's deployed on Fly.io with Litestream continuously backing up the SQLite ledger.
  • Team: the app was built by Sai working with a swarm of AI agents (developer, designer, PM, marketing and QA roles) coordinated in Snippbot.

Challenges we ran into

  • Waiting is part of the product. A movie takes a few minutes to render, so we turned the wait into a making-of sequence instead of a spinner.
  • Fair billing for renders that can fail. A Mint is held when a movie starts, kept only on delivery, and returned automatically if the render fails or is blocked. Getting that right across server restarts meant making every render resumable.
  • Cost and safety. Video generation is expensive, so the server enforces per-user daily limits and a hard daily spend stop, and moderates uploads before any money is spent.

What we learned

The best AI video experience hides the model. People respond to seeing themselves and their friends in a scene, not to settings, and a free first movie plus automatic refunds makes them comfortable paying for the next one.

Judges: how to test

  1. Install VideoVulcan from Google Play and sign in with Google when you go to make a movie.
  2. Your first movie is free. Add 3 or more photos with faces, optionally write one line, pick Epic, Noir or Cartoon, confirm the rights checkbox and tap Mint My Movie.
  3. Watch the making-of; the premiere arrives in a few minutes. Each movie includes one free re-roll.
  4. Open the Wallet to see the Mint packs and subscription sold through RevenueCat, and your history.

Built With

Share this project:

Updates

Submission history