Caleb Dean got 90 strangers to pay $5 for an app that didn't exist, force-installed it onto 3,000 phones on launch day, and posted 9 Instagram videos a day.
August 26, 2026

This newsletter breaks down real-world cases of people making serious money with apps in the AI era.
Today’s feature: Caleb Dean.
He’s 23. Twenty-six days after launching a running app, he sold it for $100,000 in cash — while keeping 30% of the equity.
Behind that speed sits a piece of marketing engineering that is far more deliberate than it first appears.
We’re going to walk through exactly how he validated demand before the app existed, and how that let him acquire a flood of users the instant it went live.
If you’ve ever launched something and watched the download counter refuse to move, this one is for you.
Let’s dig in.
Let’s start with the first app he ever built solo — because the origin is genuinely not something you’d guess.
At one point Caleb was doing the normal thing: applying for a regular job. He got through to a pre-employment health screening, which included a drug test.
When the moment came, he couldn’t produce a sample. Someone was watching him, and his body simply would not cooperate.
He ended up standing there for two hours. Nothing came out. No matter what he did.
Afterward, he did what anyone does after an experience like that — he searched to find out whether the problem was his alone.
He found Reddit communities with thousands of members. All of them describing exactly what had happened to him.
And it had a proper clinical name: paruresis, also known as shy bladder syndrome.
Which is when the thought landed: wait, could this be an app?
That’s how his first app, UriBrave, came into existence.

It shipped in October 2024. At that point Caleb had no programming skills whatsoever. He built it in FlutterFlow — a no-code tool.
You might assume the app flopped. It didn’t. It has done roughly $10,000 in cumulative revenue to date.
And the acquisition channel wasn’t social media — it was App Store search. People typing “paruresis” or “shy bladder” find the one app addressing it and become users on the spot.
Precisely because the niche is so narrow, conversion is extraordinary. The CVR broke 30%.
So far this reads like a first app that worked. And honestly, $10,000 in revenue purely from ASO deserves to be called a success.
But then he hit a wall. Scaling it was brutally, impossibly hard.
The reason: the market is simply too small. And the marketing is punishingly difficult. He tried TikTok and nothing went viral.
He tested a range of formats on this account, and none of them got views:

Which, given the subject matter, is not shocking. Making short-form video go viral on this topic was always going to be an uphill fight.
On top of that, he said something I found unusually honest:
Even though it started as my own problem, I couldn’t devote my passion to helping men pee.
Fair.
So between the revenue ceiling and the motivation ceiling, he decided to move on to the next challenge.
And he set one rule for it: the next app has to be something I can pour real passion into.
What did he build next?
As I said, he started by hunting for the idea inside his own passions.
Where were those? Running and gaming.
Running was the one hobby he was genuinely hooked on at the time, and he’d been a gamer since childhood.
Intersect the two and you get the idea: a running app with a competitive rank system.
But — and this is the important part — he did not immediately start building. UriBrave had taught him a lesson he wasn’t going to repeat.
With UriBrave, he’d sunk months into building the product first. He did end up generating revenue, but the market was tiny and scaling was off the table.
So this time, before building anything, he set out to answer two questions:
Is the market big enough?
Does the demand actually exist?
The research turned up an app called Liftoff.

Liftoff is “ranked gym workouts” — a rank system layered on top of lifting. Effectively the gym version of his exact idea. And it’s a monster, pulling in roughly $700,000 a month.
Seeing that, he became confident the market was more than large enough.
There’s even a solid argument that running is the bigger market of the two — no gym membership required, no equipment, anyone can start tomorrow.
While studying Liftoff, he noticed something.
Liftoff’s biggest selling points are “compete with your friends” and “climb the ranks.” But all of that data is entered manually by the user.
Meaning: type “1,000 kg” into your bench press and you become the strongest person on the platform. There is no cheat prevention whatsoever.
Here’s how he put it:
That was the part I could never get past. But with running, it’s all GPS-based, so every number is accurate. You can have real competition — with your friends and with strangers.
I think this is a very big deal.
The entire value of a leaderboard as a game mechanic rests on whether users can trust it.
A manually-entered ranking can be gamed, and once it can be gamed, user motivation doesn’t last.
I run a Japanese-learning app that I’m currently growing, and I’ve built a leaderboard into it. Rankings are extremely effective at raising learner motivation — that much I can confirm firsthand.
But making the underlying metric fair and legitimate is surprisingly hard.
Running sidesteps the problem completely. GPS tracking measures reality with precision, whether the user likes it or not. That’s a serious structural advantage.
What came out of all this is the running app Runify.

Liftoff, but for runners.
Worth stating clearly: this is not a vibe-coded AI wrapper someone threw together over a weekend. It integrates with Apple Watch and other hardware, and it’s built with real precision.
And beyond the feature set, the onboarding is the standout.
He built it by studying the onboarding of apps that are actually selling — using Liftoff as the base, plus Cal AI, Life Reset, and Clean Eats.
Every one of those flows is archived on Onbo Hub, so go look at them directly:
When I actually went through Runify’s onboarding, I counted more than 40 screens.
Let’s walk through what’s in there.
First, a character named Titan appears, and the onboarding proceeds as a series of questions Titan asks you.

This is unmistakably borrowed from Liftoff, where an elephant character asks you all the questions.

Now here’s the clever part: the app opens by asking to ask you just six questions.

In reality the onboarding continues for a long time after those six. But by framing the entry point as six and only six, the psychological barrier drops enormously.
And once you’ve started moving, sunk cost makes it very hard to bail out partway through.
After the six questions, it shows you a graph of the progress you’ll make by using the app.

Then two more questions, specifically designed to calculate your rank.


Then the rank result is revealed.

From there, dozens more screens: testimonials, the app’s benefits, and screens engineered to extract commitment from you.
There are user use-case screens. And there’s a commitment screen where you physically press your thumb against the display to lock in your goal.


Runify currently runs a freemium model — you can use some features without paying.
But if you want to look at your run data in detail, or view the leaderboard across different dimensions, you’ll need to pay.

One more detail: if the paywall appears and you try to back out, a discount offer shows up.
It’s not a hard paywall, but the final push after the paywall appears is unusually strong.
There are far too many onboarding screens to cover them all here, so if you want to see every single one, go through it on Onbo Hub:
One more thing: at some point he changed the messaging inside the onboarding, and conversion went up.
The original message was essentially “this is a cool app that has ranks.” He changed it to something explicit: “competing on rank will make you a faster runner.”
Initially, his mental image of the target user was “someone who runs while competing with friends, gamified and fun.”
Partway through, he realized the real target was the seriously competitive runner who is actively trying to cut their times.
So far we’ve covered the story of how he arrived at Runify, plus its features and onboarding.
But as I say constantly in this Substack — no matter how good the app is, if the marketing doesn’t click, it will not sell.
So from here, let’s look at how he grew Runify explosively after launch and managed to sell it for $100,000 in just 26 days.
Specifically, we’ll cover:
How he collected 2,000 waitlist signups and 90 people paying $5 — with no app in existence
The move that went one step beyond the waitlist and got him 3,000 downloads at launch, solving the cold-start problem
The Instagram format he used to grow the app while posting 9 times a day
The workflow that generates 10,000 videos in that format in one minute
His pre-launch demand validation, and the marketing that followed it, are seriously impressive.
Stay with me to the end.
I’ve already introduced Runify — but here’s the thing: before he built it, he ran an exhaustive demand validation.
He started by thoroughly investigating how Liftoff acquires users. What he found was that one specific short-form video format was doing the work:
https://www.tiktok.com/@liftoff_legends
Enable 3rd party cookies or use another browser
This is an extremely simple video — just the ranking and tier graphics laid out on screen. And it has 5.4 million views.
He took that format and swapped it over to running.
He generated the icons with ChatGPT and posted. Total production time per video: 30 minutes.
That one did 690,000 views.
Then he built a single HTML page as the destination for the video traffic. One bare landing page with a Stripe payment link attached.
No app screenshots. No feature list.
The LP had two CTAs:
Pay $5 and become an early adopter
Enter just your email and join the waitlist
With that setup — ranking short-form video plus a bare LP — he posted around 50 videos over two weeks.
The result:
Waitlist signups: ~2,000
People who actually paid $5: 90+
To repeat: at this point the app did not exist. With no product, using short-form video and a bare-bones landing page, he collected 90 paying users. That’s remarkable.
Remarkable — and also completely reproducible by anyone. It’s purely a question of whether you do it.
There are plenty of cases of founders validating demand on TikTok or Instagram before building.
But here’s where Caleb goes one level smarter: he didn’t stop at collecting email addresses. He took money.
When you’re validating user needs, there is an enormous difference between someone paying and someone not paying.
If you want to test demand in the true sense, ask for money from the start.
I’ve never seen anyone run the pattern he ran — offering both a waitlist path and a paid early-adopter path simultaneously and validating across both.
Intuitively, if you put a free option next to a paid option, you’d expect everyone to funnel into the free one. But he still captured a solid number of users on the paid path.
Learning that this pattern works was genuinely useful to me.
You’d think he’d launch from here — but he changed his pre-launch user acquisition method partway through. And the new method was a breakthrough.
It was App Store pre-orders.
I’ve covered plenty of cases where founders collect email addresses via a waitlist. But I don’t think I’ve ever seen a case that used App Store pre-orders.
Here’s how it works:
Get a bare-minimum app approved by Apple. For Runify, that meant two tabs. No onboarding. Just enough to be approved as a running app.
List it on the App Store as a pre-order.
Run your marketing in that state. Users can tap the “Pre-Order” button.
When the real app is finished, it automatically downloads to every pre-orderer’s device.
Apple also emails every one of them: “Runify has launched — go check it out.”
Apple officially push-delivers your app to every person who pre-ordered.
The result: Runify was listed as a pre-order for roughly two weeks and picked up 3,000 downloads.
And the moment it launched, it installed simultaneously on those 3,000 devices.
Compare that to what he’d been doing. He’d built an LP with waitlist and early-adopter paths and gathered users that way.
But of the 2,000 people on the waitlist, only around 400 actually opened the launch email.
It depends on how much time passes between signup and release, but if the gap is long, a lot of people will simply have forgotten they signed up.
An out-of-nowhere email saying “the app is live!” isn’t getting opened. And then factor in the drop-off from open → click → download, and the number collapses further.
Pre-orders, by contrast, force-install onto 3,000 devices.
That’s overwhelming.
For Runify specifically, this structure — everyone installing and starting at once — was critical.
Why?
Because the app’s entire value proposition is competing on rank against other users.
If your pitch is “compete with others! check your rank!” and someone downloads it to find nobody there, they’re gone immediately.
Which is exactly why getting a large number of users in from the very start mattered so much.
The payoff: thanks to App Store pre-orders, the leaderboard filled to its 1,000-person cap within an hour of launch.
For my own Japanese-learning app, I also added a leaderboard so users can compete on study progress — but I took the opposite approach. I first built out solo-study features and grew the user base, then implemented the leaderboard once users had reached a certain threshold.
That’s a valid path too: lead with features that work fine in isolation, pitch those, and layer on social features once you have enough people for them to feel alive.
Pre-orders were the highest-impact lever at launch, but he ran a comprehensive campaign alongside it.
A launch post on Instagram, where he’d been building an audience all along
A post on Reddit
A launch video on his personal X account — and it’s a seriously cool video
An email to everyone on the waitlist
An individual DM to every early adopter, granting them lifetime access (that appears to have been the early-adopter perk)
The takeaway: at launch, mobilize every channel you can think of.
The result only exists because he did all of it.
But going hard only on launch day is meaningless.
To keep acquiring users from there, he began posting to Instagram at an insane volume.
The post count is deranged. Nine per day.
He’d originally been posting to both TikTok and Instagram, but on TikTok, posting multiple times per day caused his view counts to crater — so he concentrated on Instagram.
TikTok’s algorithm clearly penalizes high-frequency posting from a single account. Instagram Reels appears not to care. (For what it’s worth, I used to post five times a day on TikTok and never noticed a meaningful drop in views.)
So he adopted a spray-and-pray strategy and posted relentlessly. The format is the rank video from earlier.

He posts enormous volumes of that one format.
And in that format, production is trivially easy. Finding a format that’s both easy to produce and prone to going viral is an enormous advantage.
Average views run 5,000–10,000, with roughly 1 in 10 breaking 500,000.
Which means: 9 posts a day × 30 days = 270 posts a month, of which about 27 clear half a million views.
And it gets better — he worked with an engineer to build a tool that produces videos in that format automatically.
The tool can generate 10,000 variations of the format in under one minute.
What it does is very simple:
Slightly vary the time numbers displayed on each medal / rank
Swap out the caption
That’s it.
The captions were generated in bulk by ChatGPT.
This is absurdly powerful.
And I think it’s the single most important point for indie developers in the AI era.
Most people think only about using AI to build the app. I’m guilty of this too.
But what actually moves the needle is using AI to automate the marketing.
I’ll be honest — I’m not doing this well myself. But the people producing genuinely absurd results are automating their marketing.
So, one to two weeks after launch.
Caleb, steadily growing the app, gets a DM out of nowhere.
I’m impressed by Runify. Can we talk about acquiring the app?
Caleb declined — “I’m not looking to sell” — while probing whether the other party was serious.
They were serious.
So he disclosed his numbers:
Revenue: $2,000–3,000
Downloads: 2,000–3,000
50–100 downloads per day
An average of 7 sessions per device
Not even a full month since launch. He didn’t have a single confirmed month of revenue.
The buyer was interested anyway.
Working from the performance data and trial numbers, they estimated MRR at roughly $3,000.
Then they applied a multiple of roughly 4–5× ARR to arrive at a valuation. At 4×:
$3,000 × 12 × 4 = $144,000.
Just 26 days after launch, the app was valued at over $144,000.
And on favorable terms: he got to keep 30% of the equity. (He sold 70% against that valuation, so $144,000 × 0.7 = roughly $100,000 in cash.)
Why did an offer arrive so fast?
Because he had been publicly posting on X that he was going to take Runify to $100,000 a month.
His follower count at the time: 200. Two hundred. But by continuing to publish, the message reached a buyer.
In other words, posting on X isn’t just a user acquisition channel — it’s an exit strategy.
Personally, I have some resistance to selling an app I built myself. But it’s worth keeping in your head that the option exists.
We’ve now traced Caleb Dean’s path from his first app through building Runify and selling it.
The most impressive part of his story, for me, is everything leading up to launch.
Most indie developers follow this sequence:
Have an idea
Build it
Launch it
Try to acquire users
Nothing grows
Caleb followed this one, and sold the app:
Find an app that’s already making money
Copy its acquisition method
Sell the app before it exists
Get 90 people to pay upfront
Only then start building
Collect App Store pre-orders while building
3,000 people install simultaneously at launch
Customer acquisition ran ahead of development the entire way.
He’s currently holding on to his 30% of Runify while working on new apps.
He shipped a women’s workout app called Snatched in March 2026.
And he’s declared that his next stealth app is aimed at $100,000 a month.
Runify itself continues to be updated and grown by the company that acquired it.
We can’t afford to lose to this.
So — that was a deep dive on Caleb Dean.
Thanks for reading all the way through! If anything caught your attention or you have questions, just hit reply to this email — I read everything.
And if you post your thoughts on X and mention me, it makes my day. I always respond. If you’d like to share this piece, please use the referral program!
See you next Monday.
https://www.youtube.com/watch?v=yw5iIgO4PbY
https://x.com/CalebDeannn
https://x.com/CalebDeannn/status/1985680838374408644
https://calebdean.co/
https://apps.apple.com/us/app/run-steps-tracker-runify/id6746146450
https://runifyapp.com/
https://www.instagram.com/runifyyy/
https://apps.apple.com/us/app/uribrave-toilet-time-relief/id6673914726
https://apps.apple.com/us/app/snatched-womens-workout-app/id6758319853
https://apps.apple.com/us/app/Liftoff-ranked-gym-workouts/id6448081563
https://podcasts.apple.com/us/podcast/the-superwall-podcast/id1831299632
Onbo Hub has onboarding and paywall screenshots from hundreds of top-grossing apps.
Browse the gallery