From idea to €1000 revenue in 5 weeks
Jan 2026
This idea began with a viral Instagram Reel:
(If you are too lazy to check it out: a family watches together a video with old photos that have been animated back to life with AI)
The YC mantra “Make something people want” had been stuck in my head. But how do you actually find those ideas?
Well, there it was: a video with millions of views, thousands of likes and endless comments asking for the name of the app. The twist? The app didn’t exist.
There are many apps for animating a single photo, some of them even free (such as Grok ) but I could not find any that generated a full video with transitions and music.
Indeed, I asked myself: Do I even know how to do it?
It turns out video generation models are harder to prompt and many of them change the faces of people in disturbing ways. It’s also boring (and hard) to join 20 videos into a single one and find a good background song.
So there it is: people might pay for easily creating a video from their family photos in 5 minutes.
Specifically, they might pay to move their loved ones emotionally.
That’s how Revivaly was born.
Choosing the right MVP
Users care absolutely nothing about your tech. They just want to use your service, get what they want ASAP and continue with their lives.
This is the moment where I had to put the business hat. I had 25 days until Christmas and needed to have a working, marketable, monetized product by then.
I wrote down my priorities:
- Simple UX with the lowest friction possible.
- Whole customer journey, which includes video creation and iteration until having the desired video.
- Lowest time to market possible.
Which led to product decisions such as:
- 3-step experience: upload photos, select music, select start & end cover.
- No login required for creating a video
- Web App (launching a native app would take weeks)
- Ability to iterate and edit a video. Video models produce unpredictable results and I want satisfied customers.
- Boring tech: React, Bun + Typescript, Postgres, REST APIs
- Simple infrastructure hosting with Railway
Of course I wanted a native app: I work in a mobile native development team at Microsoft. And I would also have enjoyed setting up a Kubernetes cluster (why not). Being pragmatic is underrated.
Executing fast: the bottleneck has shifted
I don’t want to imagine how long it would have taken executing this project in the pre-LLM era. The first version was finished in 9 days using Cursor to “vibe code” the backend and frontend. But here’s what surprised me — in retrospect, I spent roughly:
- 50% of the time on actual product development (backend, frontend, infrastructure)
- 30% of the time on funnel optimization and UX iteration
- 20% of the time on marketing content creation 1
AI tools compressed the first 50% dramatically: what might have taken 2 months became 9 days. But no LLM can tell you why users are dropping off at the payment screen or which TikTok hook will go viral.
The bottleneck is shifting from “can I build this?” to “can I sell this?”
That said, vibe coding is not magic. My most important role was being the code quality guardian, skimming through the generated code. The most common issues I had to deal with were:
-
Overengineering hell: LLMs love adding abstractions. Vibe coding does not replace thinking — you have to critically assess if that new database column is necessary or if it’s creating a dual source of truth.
-
Not following the codebase rules: I should have used AGENTS.md more. If I’m using dependency injection, don’t create a singleton, please.
-
Bad practices: there was a point where I was too focused on the UX and the React frontend turned into a hook hell. I recently learned you can use skills for avoiding these kinds of problems. 2
I’m not comfortable doing blind vibe coding (where you almost do not review the code and just look at the result), especially for software where a production incident means lots of refunds.
The technical details
Output reliability
Probably one of the hardest parts was making the video generation cheap and reliable at the same time.
My target price was €0,50 per photo (if you upload more than 10 photos), so I could not spend €1,60 per photo using Google Veo. After spending €200 testing all kinds of video models in many many situations and with many prompt variations I came up with the following conclusions:
- Do not, under any circumstance, let the video model have freedom when animating an image. It can produce a lot of crazy results
- Prompting a video model is different. They do not understand instructions well and are not as smart as you think. Try and experiment.
- Gemini is still the best AI for image reasoning. My tests confirmed that Gemini 3 is still the king: it understands much better what is going on in an image.
- Using Gemini to create a prompt for the video model proved to be much more reliable than passing a generic prompt to the video model.
This led to a video generation process like this:
My cost per image is right now €0,25 thanks to Wan 2.5. After a lot of testing, this model preserves faces quite well and tends to make subtle, elegant and realistic motions. Other video models can output absolute disasters.
Also, do not underestimate the image reasoning capability of Gemini. I tried to replace it with GPT-5 and the results were way worse and unreliable despite efforts on prompt optimization.
Failure mode analysis
My biggest mistake when making the backend was having a very basic error handling.
Processing one video of 20 photos (the most common order) takes approximately 140+ API calls:
The error handling was just “if there is an error, stop and alert Raul”.
Now imagine what happens when your TikTok video goes viral on Christmas Eve. And now imagine that Gemini NSFW filters start triggering (mistakenly or not). Also, the video inference provider decides it’s a good day to return invalid download URLs.
10% of the videos started having some kind of error on the 24th of December (either related to Gemini or my inference provider) and required manual intervention, which meant manually restarting the rendering process (thank God I made it idempotent) and sending an email to the customer, and reimbursing part or the full payment.
I think I lost €100 in revenue due to this mistake. I could have probably designed the system for more robust error handling without compromising time to market.
Go to market
This is where most side projects die. We, developers, don’t particularly enjoy marketing, but no one will find your product unless you get out there.
I forced myself out of my comfort zone and I’m glad I did. I decided to start with the Spanish market, and since this is a B2C product I began with TikTok, Instagram and YouTube Shorts.
Decent traction, started experimenting with different formulas
With just 15 followers on TikTok
4 hours apart on the same day
170K views, 9K likes, 2K saves, 800 shares
Woke up with 5 orders already processed
On Three Kings Day 👑
The Dec 22 viral moment? It happened just because I reuploaded a video I had published 2 days ago with a different hook.
In today’s broken attention span, the hook is everything. 3 My previous hooks were generic: “Great gift idea for Christmas” with me talking to the camera without showing anything interesting in the first 3 seconds.
The winning hook? “You can also make a video like this” while showing the viral video in the background. The shared social context did all the heavy lifting: viewers instantly understood what the product was about because they had already seen (and loved) the original video.
This changed the perception of Revivaly and increased social proof, which made the rest of sales much easier.
By January 6th (Three Kings Day), Revivaly had crossed €1000 in revenue — from zero to paying customers in 5 weeks. This figure is net of refunds and excludes sales to friends and family: only real customers.
Marketing is a very human art that will increase in value as more software in the market competes for attention.
The business side
I’m sorry. I’m so sorry for not making another subscription-based SaaS.
As a consumer I don’t like subscriptions and one-time pricing made the business simple to understand: I only pay for my providers when people pay for my service. If people don’t pay, my infrastructure costs are low (around €20/mo).
The pricing was designed so that it is €1 per photo up to 10 photos. From 10 photos up to 20 it’s “free”. This pricing strategy turned out to be effective in increasing the average sale (35% of sales were for the maximum €10 tier).
However, I’m not sure if this has a healthy margin because for a €10 video with 20 photos this is the cost breakdown 4 5 :
Which is fine, until taxes enter the picture. After income tax (~45% marginal rate), I’m left with roughly €1,20 of real net profit per sale.
Let me put this graph in a more simple way:
12% margin. That’s what I discovered while processing orders on Christmas Eve. Merry Christmas to me.
Learnings
-
Building is the easy part now. AI compressed months of coding into days. The real challenge is getting people to use (and pay for) what you build.
-
Capturing attention in a crowded market is harder than writing code, and it’s a skill worth developing.
-
Every sale is a small miracle. Someone trusting you enough to enter their credit card details on your unknown website? Don’t take it for granted.
-
Solo is suboptimal. Handling refund emails, production incidents, and self-doubt on Christmas morning would’ve been easier with a co-founder.
What’s next
Fortunately, I localized Revivaly in both English and Spanish from day one. My plan is to market this product internationally.
I don’t have all the answers yet—international marketing is a different beast—but figuring it out is part of the fun.
Being early to this niche won’t last forever. The viral video has surely inspired other builders, competition is coming.
Big players like Google might ignore this niche, but they could launch generalist tools that eat into my market. Still, returning customers prove there’s real value in nailing this specific use case.
This space moves incredibly fast and my opportunity window is small.
Time to seize the opportunity. See you in the Q1 update.
Footnotes
-
I still think I have undermarketed this product. Building felt comfortable; putting myself out there didn’t. ↩
-
However, some articles, such as this one from Vercel , point out that they might not be that effective. ↩
-
By “hook” I mean the first 2-3 seconds of the video. I want to give special thanks to my friends who helped me decide which hook would convert better (your feedback was invaluable in finding the winning formula). ↩
-
This breakdown represents the best case scenario where a customer does not reedit their video. Each customer is given 5 credits for a €10 video, which implies 5 photos to be animated again, which is €1,25 in inference costs. ↩
-
I’m hoping that inference costs will go down significantly in the next 6 months, which should improve margins substantially. ↩