DEV Community

Jakub
Jakub

Posted on

Animating a still photo in the browser: our video-gen pipeline at Inithouse

At Inithouse, a studio running parallel product experiments, we built Alive Photo to turn any still photo into a short animated video. No registration, no account, no stored files. Upload a photo, pick a style, get a video. The whole pipeline runs through the browser and a serverless backend, and every uploaded image is deleted after processing.

This post breaks down how the pipeline works and why we designed it around privacy from day one.

The problem we wanted to solve

Still photos are everywhere but they feel flat. We wanted to let anyone bring a photo to life with a few clicks. The catch: most tools that do this require sign-ups, store your photos indefinitely, or bury the feature behind a subscription wall.

We wanted something simpler. Upload, animate, download. No account. No photo sitting on a server somewhere.

How the pipeline works

The user flow is straightforward:

  1. User opens alivephoto.online and uploads a photo
  2. The browser sends the image to our serverless function
  3. The function passes it to an AI video generation model
  4. The model returns a short animated clip (typically 3-5 seconds)
  5. The video is sent back to the browser for preview and download
  6. The original photo and the generated video are purged from the server

The frontend is a React SPA built with Lovable. The backend runs on Supabase Edge Functions. The AI processing happens via API calls to a video generation model that handles the actual frame interpolation and motion synthesis.

We picked this stack because it scales to zero when nobody is using it. No idle servers, no storage costs for user data we don't want to keep anyway.

Privacy by design, not by policy

Most apps handle privacy through a privacy policy: a legal document that says "we might store your data but promise to be careful." We took a different approach.

The architecture itself enforces privacy. Photos are processed in memory. After the video is generated and delivered to the user's browser, the server-side copy is deleted. There is no user database, no photo gallery, no "my uploads" section. The system literally cannot show you your old photos because it does not have them.

This is what privacy by design means in practice. The constraint is structural, not contractual. Even if someone compromised our backend, there would be nothing to steal because nothing persists.

Multi-domain, multi-language

Alive Photo runs across five domains serving different markets:

Same codebase, different domains and translations. The localization is baked into the build, not bolted on. Each domain serves the same React app with locale-specific strings and meta tags. This keeps maintenance low while giving each market a native-feeling experience.

What we learned

A few things stood out after launching across all five domains.

CTR is the highest in our portfolio. Across our products at Inithouse, Alive Photo consistently gets the best click-through rates from search. The value proposition is immediately clear from the title and meta description alone. "Turn your photo into a video" needs no explanation.

No registration removes a real barrier. We track conversion from landing to completed animation. Without a sign-up wall, the drop-off between landing and first use is minimal. People upload a photo within seconds of arriving.

Deletion is a feature, not a limitation. We expected some users to complain about not being able to retrieve old videos. Almost nobody does. The "use it and go" model matches how people actually interact with this kind of tool. They want the output, not a cloud archive.

The tradeoffs

Running everything stateless has costs. We cannot offer a history feature. We cannot do server-side caching to speed up repeat requests. Every animation starts from scratch.

For our use case, these tradeoffs make sense. The product is simple, the interaction is short, and the value is immediate. Adding state would add complexity, storage costs, GDPR obligations, and attack surface, all for a feature our users are not asking for.

Try it

If you want to see how it works, go to alivephoto.online, upload any photo, and watch it come alive. No sign-up, no credit card. The photo gets deleted after processing.

We build at Inithouse, a studio shipping a growing portfolio of products in parallel. Alive Photo is one of several experiments where we test whether a zero-friction, privacy-first approach can work for consumer AI tools. So far, the data says yes.

Top comments (0)