We Built Virality Into the Product. Users Declined to Participate.
$250 of media, 282 commits, 35 product experiments, 22,006 users, and one clean kill decision—this is the MeVes.tv lab report.
On June 25, after 71 days and 729 working-chat messages, we closed the project in one 40-minute call.
This is not a story about failure. Four people tested a venture-sized hypothesis—that virality can be engineered into a product’s mechanics—in 71 days, for $250 of media spend and a stack of part-time evenings. We shipped and measured 35 distinct product experiments. The answer came back negative, we wrote it down, and we turned everything off before it could consume another unnecessary month.
The median dead startup takes years and someone else’s millions to reach the same conclusion. I am filing this one under worked as designed.
The Idea
MeVes.tv was a randomized roulette of ephemeral round selfie videos: Telegram-style circles recorded in the browser, served to strangers in a swipe feed, then deleted within hours. Think of it as Chatroulette’s asynchronous cousin.
The core bet was an attention economy we called produce to consume.
Watching a stranger’s video cost one view credit. A new account received 20 views. After that, there were two ways to earn more: record a video of your own, where one upload bought five views, or invite a friend.
Virality was not a marketing plan bolted on afterward. It was structural. Every heavy consumer would eventually have to become a creator, increasing content supply, or a recruiter, creating a growth loop. Our specification called it “an infinite UGC engine.”
The ephemerality doubled as an economics hack. Hard-delete everything after seven days and storage caps at roughly 34 TB, no matter how large the audience becomes. On self-hosted bare metal, that meant a fixed infrastructure bill of a few hundred dollars per month rather than a growing CDN mortgage.
The unit economics looked attractive if traffic was viral.
The word doing all the work in that sentence was if.
Building It
I wrote almost none of the product by hand.
The initial commit on April 11 delivered the walking skeleton in one shot: an Expo app, Express backend, video worker, and deployment pipeline. From there came 282 commits over 68 calendar days, but only 24 active build days because the work happened in bursts. April 29 alone accounted for 59 commits. Six days carried 77% of the entire Git history.
Forty-four of the repository’s 47 pull requests were merged from AI-agent branches—one agent session per feature, often several in an hour. The repository documentation was maintained as working context for the agents.
What emerged from nine weeks of part-time work, built essentially solo, included:
- a two-stage video pipeline with an ingest, transcode, quality, moderation, and publish state machine
- retries and a self-healing dead-letter queue
- a self-hosted moderation service
- an engagement-ranked feed with Wilson-bounded scoring, freshness decay, and explore/exploit mixing
- a quota economy governed by roughly 35 database-backed feature flags
- one Expo codebase for iOS, Android, and PWA
- a canvas-based web recorder that baked face-mask overlays into the video
- web push and an administration console
- Kubernetes on bare metal, Prometheus, and Grafana
- five locales
- roughly 57,600 lines of code
The commit log became a lab notebook. I counted 35 distinct product bets shipped in those 24 active days: quota bonuses, a forced first-video gate, multi-step onboarding and its later removal, face masks, recording prompts, a minimum recording length, reaction controls, swipe-to-record, share pages, localized invites, push notifications, a welcome reel, an earn hub, an adult-content cohort split, and scarcity labels.
Nearly every bet sat behind a feature flag: turn it on, measure it, turn it off—without a deployment.
That was the point of the speed. We were not trying to build a monument faster. We were trying to run more experiments per week than a typical seed-stage team runs per quarter.
What the AI Agents Did—and Did Not Do
The agents wrote the code. They did not decide what the product should be.
I had spent 20 years designing, building, and operating systems like this. Every one of those years was load-bearing. An agent will cheerfully build almost anything. Knowing how to decompose a system into agent-sized tasks, where it will break under load, which shortcuts are safe, and what “done” means does not come with the subscription.
Agents compressed the distance between a decision and its implementation almost to zero. They multiplied experience; they did not replace it.
They did not bring users either. When building becomes cheap, a built thing by itself is worth almost nothing.
Launching the Experiment
The site went live quietly on April 27. The four of us agreed on a $10,000 shared test budget and aimed first at lower-cost geographies.
An empty video roulette is unwatchable, so we seeded it. That cold-start tactic made the feed look active, but it could not manufacture user intent.
On May 28, we launched push ads in Indonesia.
By midday, the campaign had produced 6,400 clicks at $0.007 CPC. In the noon hour, the feed was serving 252 swiping users. Of the first 5,000 visitors, 81 uploaded at least one video—and roughly ten of those were our own team.
That evening, I force-enabled the purest version of the thesis: record your first video before you are allowed to watch anything. Contribution was now structurally guaranteed.
We reverted it in less than 24 hours because the funnel said so.
The forced gate cratered activation. People did not contribute; they left. Users were not clicking through onboarding, so we removed onboarding. When people passed links to specific videos, we stopped expiring shared videos.
The quota economy was not a conveyor belt for creators. It was a tax on curious visitors.
The peak was briefly real: more than 600 concurrent visitors, about 1,400 users per day in the feed, and 11,679 videos served on the best day. The stack held. Product demand did not.
What the Data Said
Campaign number one produced:
- 20.49 million impressions
- 88,737 clicks
- 0.43% click-through rate
- $250 in media spend
- roughly 4% retention among engaged users
After paid traffic stopped, daily active users fell from 1,350 on May 30 to 318 on May 31, 18 on June 1, five on June 2, and one on June 3.
A paid-traffic product with no retention is not a leaky bucket. It is a bucket with no bottom.
We were computing the viral coefficient, K, throughout the test. It remained near zero. But the traffic quality made the result difficult to trust: at $0.007 per click, a push network delivers accidental taps, misclicks, and bot-adjacent noise. A null K on that traffic does not cleanly falsify a viral loop; it may only say that the petri dish was sterile.
That is why we spent June trying to run a second campaign on TikTok with more intentional human traffic. We wanted a clean read.
The Full-Lifetime Autopsy
For the postmortem, I queried the production database one last time.
Across the product’s lifetime, 22,006 users registered. Of those, 20,936—95%—arrived during the four-day Indonesia campaign.
The campaign cohort produced this funnel:
- 4,454 users, or 21%, swiped at least one video
- 663 reacted to something
- 71 uploaded a video
- 38 left a comment
- 79% registered and left before requesting a single feed batch
The median lifetime of a campaign user, measured from first event to last, was zero seconds. The 90th percentile was 30 seconds.
Among users who did swipe, the median depth was six videos out of the 20 free views. We built an entire scarcity economy, but the median user left 70% of the free allowance unspent.
Scarcity cannot motivate someone who does not want a second helping.
The remaining signals agreed:
- 180 daily-bonus claims out of 22,006 users
- 29 push subscriptions
- 4,110 dislikes versus 1,713 likes
- zero signups attributed to the referral link that justified the quota economy
- 306 UTM-attributed organic signups, equivalent to K of about 0.014 against a kill threshold of 0.25
Our onboarding survey did record roughly 70 people saying that a friend brought them, while the share pages failed to preserve attribution. Some sharing happened, but the clean viral experiment never did. The traffic we could afford was too weak to produce a verdict we trusted, while the better channel never opened.
The Channel Death Spiral
Our geography strategy became whatever the advertising platforms would tolerate.
The Philippines was the original plan. The push network gave us Indonesia. TikTok took weeks to verify the account, then would not sell us Philippines traffic. Bangladesh appeared by accident. Kenya was approved, with the pixel installed and creative ready, until TikTok banned every campaign and then the account itself before the launch delivered a single impression.
Anything resembling stranger-video UGC looked like adult inventory to the platforms’ risk models.
The database still holds the ghost of the Kenya plan. We bulk-seeded 1,536 videos before launch. The campaign never ran. Of everything uploaded, 1,497 videos have zero lifetime views.
The country the GTM plan was actually written for—the Philippines—finished with 11 users.
Of the $10,000 shared budget, we managed to spend only about $250 on media. Not because we became frugal. No scalable channel would take the rest.
What I Actually Learned
Gates Are Not Loops
“You must contribute or invite to watch” felt like guaranteed virality. In practice, a gate converts marginal users into former users.
The create and invite paths compound only after retention. We had roughly half a percent. A viral coefficient is a multiplier, and anything multiplied by zero is zero.
Write Kill Gates Against Traffic You Will Believe
We measured K throughout, and it read zero. But a zero measured on push clicks whose median user lived for zero seconds did not cleanly falsify the hypothesis, so testing legitimately continued.
That is the trap. If the only traffic you can afford cannot validate the hypothesis, the test has not started. You are paying rent on the lab.
Design the first cohort so that you would accept its kill verdict. Otherwise, the decisive experiment keeps migrating to a channel you may never get.
Ephemerality Kills the Shareable Artifact
Our risk document identified the problem before launch: you cannot forward a video that deletes itself, and there are no public profiles to link to.
When the data pushed back, we adjusted. Shared videos stopped expiring, and clips with engagement stayed in the feed longer. The ephemeral product quietly made itself less ephemeral one exception at a time.
But a longer-lived clip still was not a keepable artifact. The feature with the strongest viral potential—letting viewers record and keep a reaction—was deferred. Meanwhile, the face masks we did ship were used in seven videos, and recording prompts in 11.
We built a virality experiment with its sharpest virality feature cut.
UGC Products Inherit Their Category’s Reputation
Every scalable channel treated us as adult inventory, some before a single ad ran.
If a product can be mistaken for a risky category, its distribution plan must survive being unwelcome on every major platform. Ours did not. The platforms were the constraint.
Killing Fast Is the Payoff of Testing Fast
The total tuition for a strong answer to a venture-sized question was $250 in media, a few hundred dollars per month in servers, and one spring of evenings.
The conventional way to learn the same thing is two years and a seed round. Our kill decision took one 40-minute call because, by then, it was not a debate. It was a reading.
We closed the position, archived the data, and got our evenings back.
If you are going to be wrong about a startup hypothesis—and you usually are—be wrong at this price.
AI Agents Move the Bottleneck; They Do Not Remove It
One person plus agents shipped a system that would otherwise have taken a small team a couple of quarters. That leverage worked because experience was steering the agents.
It also exposed the real bottleneck. Everything I could hand to an agent moved at absurd speed. Everything I could not—finding a channel, earning attention, making a stranger care—continued at human speed.
The implementation was not the scarce resource. Distribution and demand were.
Epilogue
The final system still answered requests. The feature flags still reflected the last experiments. Prometheus became the product’s EKG: active users flatlined near zero, push notifications went to almost nobody, and the ranking engine selected videos for an audience that did not exist.
The public footprint was effectively zero: no meaningful search presence, no social mentions, no app-store listing, and no archive history.
The absence of a footprint was the finding.
When a test is properly instrumented, cheaply run, and honestly read, moving on quickly is not avoidance. It is the point of testing cheaply.
The discipline is not staying longer. It is giving the next hypothesis the same clean trial.
The product was never the hard part. The market was.
This article was first published on LinkedIn.