M

I manually studied 30,600 iOS apps making $20k-100k/mo+, the recipe is stupidly easy

18 min readView source ↗

Cover image

Only around 1.7% of apps in the iOS App Store make $20k/mo+.

That's still more than 30,000 apps.

I've spent a stupid amount of time studying them manually. No AI summaries, no giant scraped dataset. Just looking at what these apps actually sell, how they onboard users, how they market themselves and why people keep paying.

I've also lost $300k+ making expensive mistakes of my own.

And the annoying part is that most of those mistakes were completely avoidable.

So if you can't afford to spend years and hundreds of thousands of dollars figuring this stuff out yourself, you probably can't afford to ignore what is already working.

Mobile apps are especially interesting right now because the hardest part used to be building them.

You needed Swift. You needed developers. An MVP could take months. Then you still had to somehow get the thing through the App Store.

That's changed.

Claude Code, Shipper and the rest of the AI coding wave have made building dramatically easier.

Which means the advantage moved somewhere else:

Picking the right idea. Shipping fast. Getting people to pay. And DISTRIBUTION.

@chddaniel and I have spent years building internet businesses together, and after studying thousands of successful apps, you start noticing something:

The same patterns show up constantly.

The ideas repeat.

The onboarding repeats.

The marketing repeats.

You don't need to reinvent everything. You need to understand why these patterns work and execute them better.

If I were starting from zero today, here's exactly what I'd do.

1. START WITH A PROBLEM PEOPLE ALREADY WANT SOLVED

Your app idea matters way more than most founders want to admit.

You can execute almost everything else correctly and still make the business unnecessarily difficult because you picked a problem nobody cares enough about.

It's called B2C for a reason.

Business to consumer.

Yet somehow the consumer is usually the part people forget.

Before thinking about features, branding, UI or which AI model you're going to use, figure out who is actually supposed to pull out their card and pay for this thing.

Then ask the question that matters more:

Why would they care enough to do it?

If I had limited time and money, I'd heavily favor problems people already feel every day:

  • losing weight
  • looking better
  • screen time addiction
  • getting over an ex
  • sleeping better
  • quitting an addiction
  • relationships
  • tracking food
  • getting stronger

You don't need to educate people about these problems.

They already think about them.

They Google them. They watch TikToks about them. They complain about them to friends.

And, most importantly, they already spend money trying to solve them.

Look at Cal AI.

📷 cal ai website

The entire product can basically be explained in one sentence:

Take a photo of your food and instantly track the calories.

That's it.

Obviously there's more happening inside the app, but the reason someone downloads it is immediately understandable.

People want to lose weight.

Tracking calories helps.

Manually searching for ingredients and entering every meal is annoying.

Cal AI removes that friction.

The app reportedly did around $28k in its first month, $115k in its second month and eventually reached roughly $1m in monthly recurring revenue within six months.

The lesson isn't to open Shipper and build Cal AI #483.

The lesson is that a simple solution attached to a massive existing desire can become an enormous business.

Competition is usually a good thing

A lot of founders see competition and immediately assume they're too late.

I'd often think the opposite.

Steve Hoyek's Journable is a good example.

It entered calorie tracking, one of the most crowded consumer app categories imaginable.

Instead of trying to invent a completely new category, they looked at what people disliked about the existing products.

A lot of calorie trackers had become bloated and complicated.

Journable went in the opposite direction and focused heavily on simplicity.

It eventually crossed $100k/month, with most of that revenue reportedly coming from Android, which is interesting by itself considering how obsessed mobile founders tend to be with iOS.

Competition can be one of the strongest forms of validation you have.

If you find five apps solving roughly the same problem and they're doing $20k, $50k or $100k+ every month, you know people are willing to pay.

Compare that with finding a completely untouched idea.

Maybe you've discovered an incredible blue ocean.

Or maybe nobody built it because nobody wants it.

I'd rather have evidence.

Before committing to an app, I'd want to know:

Are multiple competitors making serious money?

How big did the winners get?

What do customers hate about the existing products?

And probably most importantly, how are those apps acquiring customers?

Because distribution should influence the product you decide to build.

An app that can be understood in a 7-second TikTok demo has a completely different growth profile from something requiring three minutes of explanation.

An app where users naturally share results has an advantage over one where everything happens privately.

A transformation product naturally creates before-and-after content.

These things matter before you write a single prompt.

Don't spend weeks trying to invent a problem nobody has ever solved.

Find a market where people already spend money. Understand why the winners work. Figure out what customers still hate. Then build something meaningfully better, simpler or different.

You don't need to reinvent human behavior.

Build around behavior that already exists.

2. VALIDATED THE IDEA? BUILD IT FAST.

Once I've convinced myself the market exists, I want the first version in the App Store as quickly as possible.

Not three months.

I'd aim for 7 days, maybe 14 if the product genuinely needs it.

Every additional week before real users touch the product increases the chance you're building something nobody actually asked for.

Your first version basically needs three things:

1. Onboarding

2. Monetization

3. The core app loop

That's the app.

Everything else can come once actual people are using it.

And this is where building apps in 2026 is completely different.

With Shipper, you don't have to start with an empty project and manually translate everything in your head into code.

But that doesn't mean you should open it and type:

"build me a fitness app"

and expect a great product to magically appear.

📷 shipper website

Research before you prompt

Before building anything, I'd download 5-10 of the best apps in the category.

Actually use them.

Go through the entire experience like a customer.

Screenshot their:

  • onboarding
  • paywall
  • home screen
  • core feature
  • results
  • interesting interactions

Also pay attention to what they don't include.

Then stop looking at the screenshots as designs and start asking why the decisions were made.

Why does onboarding ask that question?

Why is the paywall shown at that exact moment?

Why are there only three actions on the main screen?

Why does the result look like that?

Why did they remove everything else?

You're not trying to clone somebody else's app.

You're reverse engineering the decisions underneath it.

Once you understand those decisions, you can give Shipper dramatically better context.

Instead of describing everything with words, show it.

Give it screenshots.

Give it visual references.

Explain the user journey.

Tell it what happens when somebody opens the app, what their main action is, what happens afterward and how the whole thing should feel.

AI builders are only as good as the context you give them.

If you're vague, you're effectively asking the AI to make dozens of product, UX and design decisions for you.

Then people blame the builder when the result looks generic.

Don't make it guess.

My process would basically be:

#1 Find the apps already winning in your niche.

#2 Break down their onboarding, paywall and core loop.

#3 Decide what yours does differently or better.

#4 Give Shipper the plan, screenshots and visual references.

#5 Build and keep iterating until it feels like something you'd actually download yourself.

That last part matters.

A functioning app isn't a finished app.

If the first version looks generic, keep going.

If the spacing feels wrong, fix it.

If the typography looks cheap, change it.

If a screen has 12 things happening at once, simplify it.

If you can't explain what you want, find an app that does it properly and attach the screenshot.

There's basically no reason anymore for vibe coded to automatically mean AI slop.

The tools are good enough.

You need enough taste to recognize when something isn't finished and enough patience to keep iterating until it is.

For consumer apps, this matters even more because UI itself can become distribution.

Someone sees your app for three seconds in a TikTok and immediately wants to know what it is.

Users screenshot their results and send them to friends.

Your app looks polished enough that creators actually want to show it.

Apple features it.

Design isn't just decoration anymore. It can directly affect acquisition.

So yes:

BUILD FAST.

But fast doesn't mean shipping whatever AI gives you after prompt #1.

Use Shipper to compress months of development into days.

Then use some of the time you saved to make the product actually feel worth paying for.

3. THE DOWNLOAD ISN'T THE SALE

This might be the most important section of the entire article.

By the time someone reaches your onboarding, you've already done something difficult.

They saw your TikTok.

Stopped scrolling.

Clicked.

Went to the App Store.

Downloaded the app.

And actually opened it.

You might've paid to acquire that person. Or spent hours making the content that brought them there.

Now you have one job:

Don't waste that attention.

Yet most apps immediately do.

"Welcome!"

"Here are our 3 amazing features!"

"Create your account!"

Nobody cares.

Onboarding shouldn't feel like an instruction manual.

It should feel like they've already started using the product.

📷 Provide a caption (optional)

Think about onboarding as moving someone through a sequence of beliefs:

I have this problem → this app understands my problem → this might actually help me → I want the result

Then you ask them to pay.

That's why every screen needs a reason to exist.

Some questions personalize the experience.

Others force users to think about the severity of their problem.

Some introduce proof.

Others create small commitments before asking for a larger commitment.

And whenever possible, give them a taste of the actual product before the paywall.

Building a calorie app?

Don't use 15 screens to explain how incredible your scanner is.

Let them scan something.

Building a screen-time app?

Show them what their current behavior actually looks like.

Building a looksmaxing app?

Give them part of their analysis.

Ideally, the user reaches your paywall already wanting whatever is on the other side.

Don't invent onboarding from scratch

The biggest apps in your category have spent years testing this.

Questions.

Screen order.

Copy.

Paywalls.

Prices.

Offers.

They've probably tested hundreds of variations you'll never see.

You get to study the result of all those experiments for free.

Again, don't blindly copy the screens.

Understand the patterns.

If three of the largest apps all ask a similar question before revealing the result, pay attention.

If they introduce social proof at roughly the same moment, pay attention.

If everyone delays the paywall until after giving the user something personalized, that's probably worth testing too.

Cal AI shows how far this can go.

Their team reportedly ran 123 A/B experiments, tested 160 unique paywall designs and created 424 total variants, including 61 meaningful experiments specifically around the onboarding paywall.

During that period, monthly revenue grew more than 3x and trial-to-paid conversion improved by 31%.

That isn't one genius onboarding flow somebody designed in an afternoon.

It's hundreds of small decisions being tested until the numbers moved.

That's how I'd treat yours too.

Your first onboarding isn't your onboarding.

It's hypothesis #1.

Get people through it.

See where they disappear.

Change the opening.

Remove unnecessary screens.

Move the aha moment earlier.

Change the questions.

Move social proof.

Test the paywall.

Test the offer.

You don't need to redesign everything every week.

Sometimes moving one screen or changing one sentence affects every single user who downloads the app afterward.

Your onboarding and paywall are never really finished.

They're part of your growth engine.

4. START DISTRIBUTION BEFORE THE APP IS FINISHED

Don't wait for App Store approval to start thinking about marketing.

While the app is being built, go back to the competitors you researched earlier.

This time, ignore their product.

Study how they're getting customers.

Find their TikToks and Instagram accounts.

Search their app name and see which creators are posting about them.

Find the founder.

Find their ads.

Save every piece of content that performed unusually well.

At this stage, you're not trying to prove how original you are.

You're trying to understand what the algorithm and the customer have already proven they respond to.

Look at:

the hook,

the first frame,

how quickly the app appears,

how they demonstrate the product,

and the CTA.

If the same format works repeatedly across several apps in the same niche, that's free market research.

Then make your own versions.

A lot of them.

The Marketing Hierarchy

This is how I think about whether marketing is actually working:

Tier 0: Low views

Tier 1: Views

Tier 2: Views + Engagement

Tier 3: Views + Engagement + Downloads

Tier 4: Views + Engagement + Downloads + Conversions

Tier 5: Views + Engagement + Downloads + Conversions + Low churn

The tier you're stuck at tells you what to fix.

At Tier 0, the content isn't working. Nobody stops scrolling. Fix the hook before worrying about anything else.

At Tier 1, you've figured out attention.

That's nice.

But 500k views producing almost no downloads isn't successful marketing just because the number underneath the video looks impressive.

Tier 2 can be even more deceptive.

Thousands of likes. Hundreds of comments. People arguing.

Maybe the creator is entertaining.

Maybe the topic is controversial.

Maybe everybody loves the video.

None of that means they want the app.

Don't celebrate engagement until you've confirmed that engagement moves people further down the funnel.

At Tier 3, the content is finally doing its job.

People watch, understand the product and download it.

If you're getting thousands of downloads but almost nobody pays, stop blaming your videos.

Marketing did its job.

Your problem moved further down the funnel.

Go fix onboarding, the paywall or the product.

Tier 4 is where the pieces connect.

Views become downloads.

Downloads become paying users.

Now you have something worth scaling.

And Tier 5 is the actual goal.

Marketing worked.

Onboarding worked.

People paid.

Then the product delivered enough value that they stayed.

That's why I don't really care about "going viral" by itself.

A video can get 5 million views and make almost nothing.

Another can get 100k views and generate thousands of dollars because almost everyone watching is exactly who the app was built for.

The goal isn't views. The goal is moving people through the entire hierarchy.

When something works, stop trying to be clever

This is one of the easiest mistakes to make.

You finally find a format that works.

You post it five times.

Then you get bored.

So you decide your audience must be bored too and start making something completely different.

But you've seen every single one of your posts.

Your audience hasn't.

If one hook consistently produces downloads, make 20 more versions.

If screen-recording demos work, keep making them.

If slideshows work, make more slideshows.

Change the story.

Change the opening.

Change the person.

Change the example.

Change the visual.

But keep the underlying format that already proved itself.

Volume matters because you're running experiments.

Ten videos tell you almost nothing.

After 50, 100 or 200, patterns become obvious.

Certain hooks constantly outperform.

Certain problems get stronger reactions.

Certain demos produce more downloads.

Certain creators convert dramatically better.

That's when you multiply yourself.

Don't immediately chase influencers with massive audiences.

I'd rather find smaller creators who clearly understand short-form content.

Someone with 8,000 followers and several 500k-view videos might be far more useful than someone with 300,000 followers whose audience barely responds to anything they post.

Look at whether they understand hooks.

Whether they're good on camera.

Whether they communicate well.

Whether they've repeatedly demonstrated that they can stop the scroll.

Then don't ask them to invent your marketing strategy from scratch.

Give them what you've already learned.

Your winning videos.

Competitor examples.

Hooks.

Screen recordings.

Angles that already generated downloads.

You want creators producing more variations of a strategy you're already proving.

That's when distribution starts looking less like random posting and more like a machine.

Instead of you making five videos, five creators make five each.

Then ten creators.

Then more accounts.

Suddenly you're testing hundreds of creatives and learning much faster than someone posting whenever inspiration strikes.

And those organic winners tell you exactly what to do next.

5. PUT MONEY BEHIND WHAT ALREADY WORKS

Paid acquisition should come after you've learned what people respond to.

Too many founders reverse this.

They build an app.

Make three random ads.

Put $200/day behind them.

Lose money.

Then conclude that paid acquisition doesn't work.

You just paid to test something you could've tested organically.

If you've already produced 100 pieces of content and five generated most of your downloads, those five concepts are where I'd start.

Keep the underlying ideas and make variations:

different hooks,

different creators,

different openings,

different demos.

Paid ads should amplify something that's working, not rescue something that isn't.

Once you start spending, the business also becomes much easier to understand.

Imagine spending $1,000 and getting 500 installs.

50 start a trial.

20 pay.

Now you can actually see the machine.

Improve the creative and maybe $1,000 buys 700 installs.

Improve App Store conversion and more visitors download.

Improve onboarding and maybe 75 people start trials instead of 50.

Improve the paywall and perhaps 30 pay instead of 20.

Then improve retention and every customer becomes worth more.

That's where things get interesting.

Small improvements start multiplying through the entire funnel.

You're no longer optimizing random screens.

You're improving the economics of the business.

Now improve the product

Only once I had meaningful usage would I start spending significantly more time expanding the product.

Because now you have evidence.

Read App Store reviews.

Read support messages.

Read refund requests and cancellation reasons.

Find where people disappear.

Look at what your best customers repeatedly use.

Look at what users keep asking for.

But don't automatically turn every request into a feature.

Keep asking:

Does this make the core promise of the app stronger?

Sometimes that means adding a feature.

Sometimes it means deleting three screens.

Sometimes it means getting users to their first result 30 seconds faster.

Maybe the default experience is wrong.

Maybe the output needs to improve.

Maybe one section of onboarding is confusing.

You're trying to improve conversion, revenue, retention or the actual outcome the customer came for.

You're not trying to win an award for the longest feature list.

Once you know what works, scaling becomes almost boring.

One creator consistently produces customers?

Give them more work.

One content format keeps generating downloads?

Make 30 variations.

One ad stays profitable?

Scale it and make more creatives around the same idea.

One audience converts twice as well?

Go deeper.

People imagine scaling as constantly discovering new growth hacks.

A huge part of it is much simpler:

Find something that works and refuse to stop doing it.

THE WHOLE FORMULA

If I had to compress everything into five steps:

  1. Enter a proven market

Find a painful problem people already spend money solving.

You don't need to invent a new market. Multiple competitors making serious money is validation, not necessarily a reason to stay away.

  1. Build in 7 days, not 7 months

Study the winners. Understand their decisions. Give Shipper screenshots and references. Build the onboarding, paywall and core loop.

Then keep iterating until it doesn't feel like another AI-generated clone.

  1. Treat onboarding as part of marketing

A download isn't a customer.

Users still need to understand the problem, experience enough value to want the result and have a strong enough reason to pay.

  1. Test distribution at stupid volume

Find formats that already work and make your own versions.

Don't optimize for views.

Optimize for views → downloads → trials → revenue → retention.

  1. Scale what survives the entire funnel

More winning creators.

More versions of winning creatives.

More paid spend behind proven concepts.

Better conversion.

Better retention.

Then repeat.

That's really it.

Don't bookmark this, feel productive for five minutes and then forget about it.

Build something.

Related articles