He doesn't chase the U.S. market, doesn't offer a free trial, and never scales a winning ad by more than 20% every three days. Here's the unusually disciplined system behind a 23-year-old's $56K month — geography, measurement stack, creative sourcing, and the exact pace he scales winners at.
September 1, 2026

Today's subject: Timo Köhler.
He's a 23-year-old German who's been traveling the world while growing his app to roughly $56,000 a month in revenue.
What he built is an app that reads a photo of a stock chart and has AI tell you what to do about it.
Under the hood, it's essentially a wrapper around OpenAI's API — nothing more exotic than that. And yet he's scaled it impressively.
The part that really stands out: he only spends about 20 hours a month on the app. That's roughly five hours a week.
How is that even possible? Isn't scaling an app supposed to require a huge time investment in marketing?
The secret behind how he scaled this with so little of his own time is one word: advertising.
I've been looking at a lot of successful apps lately, and I keep noticing more and more solo developers using paid ads effectively.
Ads used to be the domain of well-capitalized companies willing to run at a loss while they scaled — not something an individual developer with limited capital could easily touch.
Lately, though, I'm seeing more cases where a solo developer grows organically first, gets the app's unit economics solid, and only then layers ads on top as a booster. (Or maybe I've just started noticing it recently.)
Most of the success stories I've covered on OnboHub so far have leaned heavily on organic growth. This time, I wanted to look closely at growth through paid ads instead.
Ad-driven growth tends to be easy for competitors to copy, so people who are good at it usually don't share much. Timo is a rare exception — he's been unusually open about it.
I've personally run plenty of ad campaigns myself — TikTok, Instagram, X — and mostly struggled to make them work.
So partly for my own benefit, I dug deep into his case and put together a clear breakdown of exactly how he's scaling an app through ads.
Let's walk through his story and the ad growth playbook behind it.
First, his background.
Timo used to work as a software engineer at a major German automaker.
His turning point came in late 2023, when ChatGPT added image upload support.
That's when he thought: "A feature that lets AI read a photo of a stock chart could be a product on its own."
But he didn't jump straight into building an app. What he built first was a simple chart-analysis bot for Telegram.
I've covered plenty of pre-launch demand-validation stories on OnboHub before, but this is the first case of someone validating demand by building their own Telegram bot.
If the theme is a good fit, building a Telegram bot to test the waters might genuinely be a smart move.
Building an app means designing a UI, implementing payments, and going through app review — too heavy to jump into right away.
These days, AI makes it possible to go from idea to app launch fast, but back in 2023 that kind of AI-assisted speed wasn't really available yet.
A Telegram bot, on the other hand, can ship in a matter of days.
It let him answer the most basic question first — "does anyone actually want this solution?" — as fast as possible. It's a perfect method for validating demand.
So Timo launched the Telegram bot and used it to validate demand.
It worked. The bot picked up a real user base and gave him confidence.
Then, in April 2025, he finally launched the mobile app (a nearly two-year gap from the original idea, which admittedly feels a bit slow).
The app he launched is called ChartDetector AI.

The app itself is extremely simple.
You photograph or upload a screenshot of a chart — stocks, crypto, forex, whatever — and it reads the chart pattern and trend, then hands back a buy/sell/hold call along with reasoning.
One detail I found clever: he lists the app under the App Store's "Education" category, not "Finance." It's deliberately framed as an educational tool rather than financial advice.
As mentioned, the underlying technology is OpenAI's API, and honestly, throwing the same chart at ChatGPT directly would probably get you a similar analysis.
The app is likely doing little more than some prompt engineering and structuring the output cleanly.
And yet, even an app like that can be scaled — with the right execution — to $56,000 a month in revenue.
Incidentally, six months after launching ChartDetector AI, he quit his job and now travels the world as a full-time digital nomad.
And it looks like the company itself is registered in Cyprus.
As a side note, it seems like a growing number of European solo developers I've covered before are also basing themselves in Cyprus these days — there's a real gathering of European indie builders happening there.
It's only about a two-hour flight from Georgia, where I live, so I've been thinking about visiting sometime this year.
Now let's get into how he actually grew this thing.
Before the specific marketing tactics, I want to show you his P&L for a given month. Here's his revenue and costs for April 2026 👇
Very few solo developers disclose this much.
Against $43,000 in revenue, he spent $20,000 on ads. Once you factor in Apple's cut and taxes, net profit lands around $11,000.
Looking at that, you might think: "that's not actually that profitable." But given how much he's spending on ads, I'd call this a genuinely strong result.
Ad-driven growth typically works by spending heavily up front, running at a loss, and clawing the money back later. But he's keeping a single month solidly in the black.
And because the growth is coming from ads rather than content, the whole operation only requires about 20 hours a month of his time. Try to pull off that kind of scale by mass-producing organic content instead, and it wouldn't be nearly as light.
Now, to keep running ads while staying profitable, there's one thing you have to get right first.
That's maximizing ARPU (average revenue per user) — and for an app, it's more useful to think of that as "revenue per download," and to push that number as high as possible.
So, how do you actually raise revenue per download?
The most important lever is onboarding.
Timo's rule of thumb: if you're building an app in three days, spend one day on the feature itself and two days on onboarding.
That's how much weight onboarding carries.
It's not an exaggeration to say the quality of your onboarding determines your app's ARPU. Features matter too, of course, but if onboarding is bad, users never even reach the features.
The first priority is always polishing onboarding.
So what does ChartDetector AI's onboarding actually look like?
I've covered the importance of onboarding on OnboHub many times before, often showcasing extremely long flows — but ChartDetector AI's onboarding isn't that long.
It runs 13 screens. Even so, every essential element is packed in.

First, it asks a series of questions while weaving in screens that make the case for why the user needs the app.
From there, it moves into a personalization screen.
Then it shows social proof.
And finally, the paywall.

Questions, the case for the app, personalization, and social proof — all the right pieces are in there.
What's interesting about the paywall is that it offers a 6-month plan.
Paywalls usually default to showing an annual price, which makes users unconsciously read whatever number is on screen as "the yearly rate" and judge it as cheap or expensive on that basis. A clever technique.
Seeing "$50 for 6 months" instead of "$100 a year" can genuinely feel dramatically cheaper, even when the underlying price is identical.
I hadn't seen a 6-month plan used on a paywall like this before, so it stood out to me.
He's also using a hard paywall with no free trial. According to him, going hard-paywall dramatically improves monetization.
This depends on the app's theme, but as a general tendency, dropping the free trial tends to push ARPU higher.
Timo says polishing onboarding and the paywall first, to maximize ARPU as thoroughly as possible, is the critical foundation before any of this works.
You can browse ChartDetector AI's onboarding flow for yourself here:
So far, we've covered what kind of app Timo built, why it grew, and the background on why maximizing ARPU matters so much.
Now here's the real subject of this piece: how did he actually scale this app with ads, using an absurdly small 20 hours a month of his own time?
Let's break the whole thing down.
Now let's get into the actual techniques he uses to run ads and grow.
First, here's his app's TikTok account:
https://www.tiktok.com/@try_chartdetector
And here's the single best-performing video on that account 👇
That video sits at 5.4 million views — but keep in mind, most of those views came from paid promotion, not organic reach.
That one video alone generated roughly $15,000 in revenue. He's likely put close to $6,000 in ad spend behind it.
His overall strategy is simple.
Post multiple videos organically on TikTok.
Narrow down to whichever ones perform best organically, and put ad spend behind those.
Compare ARPU against CPA, cut the low-performing creative, and lean further into whatever's working, so ARPU always comes out ahead.
Stated like that, it sounds obvious.
The real question is how you actually execute it.
What matters here is pushing ARPU as far above CPA as possible.
Maintain a state where ARPU > CPA.
And to do that, there are naturally two directions: push CPA down as far as possible, and push ARPU up as far as possible.
As covered earlier, raising ARPU means tuning onboarding and the paywall.
So what counts as a "good" ARPU?
If you're using RevenueCat, you can check this under "LTV per Customer."
ARPU is average revenue per user over a specific period, while LTV takes that over a lifetime — but since RevenueCat lets you set the LTV window yourself, you can effectively treat LTV as ARPU for this purpose.
Here's Timo's app's ARPU 👇

He's earning roughly $2.70 per download. That's extremely high.
Given that, the target is simple: keep the ad cost per download (CPA) below $2.70.
For reference, my own ARPU sits at roughly $1.
That's less than half of Timo's, and while part of me feels like I should push it higher, it really does vary a lot depending on the app's theme, so it's hard to say definitively.
Timo's theme is finance, which naturally tends to carry a higher ARPU. But finance themes tend to carry higher CPA too, so it really is theme-dependent.
What matters is:
Where does your ARPU sit relative to competitors in your app's category?
Is your ARPU meaningfully higher than your CPA?
If ARPU is higher than CPA, there's a real chance you can scale profitably with ads.
Timo says that if your ARPU falls below roughly $0.30, scaling with ads is essentially impossible — fix your ARPU first before you even think about ad spend.
I think that's exactly right.
Most apps that aren't making money have a very low ARPU. Know your own number, and keep pushing it up through better onboarding and paywall design.
Once ARPU is maximized, the next step is actually running ads.
Here, of course, keeping CPA down matters a lot.
Timo said something here that was a genuine lesson for me:
"Don't target the U.S. first."
A lot of OnboHub readers are probably focused on the Japanese market, so this might not feel directly relevant. But if you're going after a global market, the U.S. is almost always the first place that comes to mind (and honestly, given how much easier it's become to go global these days, I think more people should be building for overseas markets from the start).
I run apps aimed at overseas markets myself, and the U.S. does have dramatically higher conversion rates and ARPU.
So it's natural to want to target it first.
If you're going organic, that's fine. But it's a different story once ads enter the picture.
So many apps are bidding for U.S. ad inventory that ad costs are absurdly high there.
I've personally run ads targeting the U.S. myself, and the cost genuinely wasn't worth it.
That's exactly why Timo says "don't target the U.S. first."
So where should you target instead?
"Start with high-income Europe," he says.
Places like the UK, Germany, France, Switzerland, and the Nordics.
The purchasing power is comparable, but the cost is a fraction, and competition is dramatically lower.
"Validate there first, find what actually works, and only then bring it to the U.S."
That was genuinely eye-opening for me.
By this point, we've covered the basic principles of running ads.
But there's something critical here: measurement setup.
Obviously, if you can't measure things correctly, you have no idea whether your ad spend is actually working, no matter how much you run.
With TikTok ads specifically, if you're just running ads normally, all you get by default is link clicks.
That tells you nothing about which ad is actually driving conversions.
That's where a tool called AppsFlyer comes in — it's built for ad attribution and measurement.
Timo says these are the tools you should set up the moment you launch an app:
RevenueCat — subscriptions, paywalls, billing management
PostHog — onboarding drop-off analysis
AppsFlyer — ad attribution and measurement
Of these, AppsFlyer is the single most important one for measuring and scaling ad performance.
And your optimization target should be the purchase event, not the install event — you want to optimize for purchases, not installs.
If you optimize for installs, TikTok goes out and finds "people who look likely to install" — which pulls in a huge number of people who just download free apps and never pay.
Optimize for the purchase event instead, and TikTok goes and finds "people who look likely to pay."
That's why AppsFlyer needs to be in place from day one. Without feeding purchase data back to TikTok, this kind of optimization simply doesn't work.
Timo also mentions that AppsFlyer's setup is genuinely complex, and recommends hiring an ads professional just for the initial setup if you're doing this for the first time.
I've personally done measurement design and data analysis professionally for various services, and even I hadn't gotten this level of setup right.
I'd run ads, not see much come back, and just quit. But if you don't have a proper foundation for tracking and reviewing results, running ads at all is basically pointless.
I need to actually do this properly myself.
Once measurement is set up, the next question is how to actually build your ad creative.
Timo says he starts with the TikTok Creative Center and Meta Ad Library, and analyzes:
What hooks are being used
What kind of UGC creators are appearing
What angle they're pitching from
What user pain point they're targeting
He also says it helps to create an account, browse ads, and like anything close to your own theme — that trains the algorithm to keep feeding you creative from adjacent categories.
I've said before, in past pieces about organic growth, that studying organic posts that already work is key to making something that goes viral. The same logic applies to ads.
Don't invent from scratch — study what's already working for other people, and pull the good parts into your own creative.
Once he's settled on a creative direction, he could make it himself, but Timo instead hires UGC creators.
He pays roughly $15 per video on average, and says the results dramatically outperform anything he'd make himself.
He sources creators either directly on TikTok, or through a platform called SideShift, which specializes in connecting brands with UGC creators.
Once you have creative, it's time to actually run it.
According to Timo, the important things are:
Ship at least 30 new ad creatives every month
Don't touch a campaign during its first week (that's the learning phase)
On TikTok, use Smart+ campaigns (which mostly hand optimization to TikTok's own AI)
Target by country only — no age, gender, or interest targeting
In short: don't micro-segment your targeting yourself. Let the AI handle optimization.
What matters here, though, is setting the correct optimization goal from the start.
As mentioned earlier, if you haven't set up AppsFlyer and set the purchase event as your success metric, the AI ends up optimizing for something meaningless, and performance drops significantly.
Once everything is set up and running, you'll naturally end up with some ads that perform well and some that don't.
From here, it might look like the obvious move is to aggressively increase budget on whatever's performing well and scale it hard.
But according to Timo, "this is exactly where most people scale their winning creative like crazy and blow it up."
His rule: "Increase the budget on any campaign where ARPU > CPA by 20% every three days."
Don't scale all at once. Scaling too aggressively breaks the learning logic the algorithm has already built up.
Once you have a winning creative, he says to test around it by tweaking the hook, adjusting the script slightly, or shifting the angle a bit.
Keep the hook the same, change the footage
Keep the footage the same, change the hook
Keep the script the same, change the performer
You move one variable at a time to isolate whether the "winning" element was actually the hook, the footage, or the performer.
Once you've identified the real driver, you can scale it horizontally across many new creatives.
From there, it's just a matter of following the rules to scale. A $10K MRR is well within reach at that point.
We've gone deep on ad execution — let's close with how he thinks about finding an app idea worth building in the first place.
Picking the right theme matters enormously, precisely because you need ARPU > CPA to hold for the ad playbook above to even work.
The first step isn't writing code.
Create a new TikTok account and actively watch app ads.
Like, comment on, and save every app ad you come across. The algorithm will start feeding you more and more ads for apps that are already selling well.
In other words: use TikTok as a free market research tool.
From there, use app-analysis tools to find apps that are growing but haven't attracted much attention yet, and check their revenue scale and competitive landscape.
What matters here is that you're not hunting for "an interesting idea" — you're hunting for an idea where demand has already been proven.
Once you've gathered a lot of ideas, narrow them down. He uses two criteria to filter:
1. Does it tap into a core human desire?
Does it connect to a strong desire like wanting to earn more money, wanting attention, wanting to look good, or wanting to win over someone you're attracted to?
2. Are competitors already making significant money from it?
If competitors are already making real money, that means it's a space where money genuinely flows.
In other words:
Strong desire × a market where money is already moving
Only go after ideas that satisfy both.
A chart-analysis AI ties directly into the desire to "earn more money," and similar apps were already generating revenue — so it satisfied both conditions.
Simple, but that's the method behind his idea selection.
A lot of solo developers would rather build the app they personally want to build than chase "an app that sells." I think that instinct is genuinely great, too.
But most successful app founders out there tend to work backward from "what will actually sell," build that first, and only later build the thing they truly wanted to make — once the sellable app has given them the runway. Or, often, the process of growing it turns into something they genuinely enjoy along the way.
I'm currently growing a Japanese-learning app for an overseas audience myself, and I didn't start out with some deep passion for the Japanese language. It started from a simpler premise — if I'm going to grow something on social media for an overseas audience, a Japanese-themed app made the most sense.
But now I have a real user base, and growing this app has become genuinely enjoyable in its own right.
Which is exactly why I think working backward from "what sells" first is a perfectly good place to start.
That's Timo's ad-growth playbook, start to finish. Personally, a lot of it was genuinely eye-opening.
To recap the key points:
Push ARPU (revenue per download) above CPA before scaling with ads at all
Onboarding and the paywall — not the feature itself — are the highest-leverage things to polish first
If you're going after ads, validate in wealthy, low-competition Europe before ever touching the U.S. market
Build your measurement foundation (AppsFlyer and similar) from day one, and optimize for purchase events, not installs
Don't invent creative from scratch — study what's already winning on TikTok's and Meta's ad libraries first
Even with a winning creative, scale it at a restrained 20% every three days rather than all at once
Pick your app idea by working backward from "strong desire × a market where money is already moving," not from "does this sound interesting"
What hit me hardest, personally, is coming back to that one simple inequality: ARPU > CPA. When ads aren't working, the instinct is to fiddle with placements and budget splits. Usually, the faster fix is raising the app's own monetization — its ARPU — first.
I've covered organic growth playbooks on OnboHub many times before, but growth through paid ads is still a much less systematized topic, with far less good information floating around.
Using Timo's case as a reference, I'm planning to revisit ARPU on my own apps and start running some small ad tests of my own.
If you've been struggling with ads too, I hope this was genuinely useful.
So that's a full look at Timo Köhler this week.
Thanks for reading all the way through! If anything caught your attention or you have questions, just hit reply — I read everything.
And if you post your thoughts on X and mention me, it makes my day. I always respond.
See you next time.
Timo Köhler's X thread, "how I built a $40K MRR app that runs itself while I travel the world": https://x.com/timoxkoehler/status/2051967867965321326
Timo Köhler on X: https://x.com/timoxkoehler
Starter Story: https://www.youtube.com/watch?v=DPb-M0Vt4uI
ChartDetector AI official site: https://chartdetectorai.com/
ChartDetector AI on the App Store: https://apps.apple.com/us/app/chartdetector-ai/id6743856402
Köhler Technology (his brother's company): https://koehler-technology.de/
AppFounder (his community): https://www.skool.com/appfounder
MWM Intelligence app analysis: https://mwm.ai/apps/chartdetector-ai/6743856402
Onbo Hub has onboarding and paywall screenshots from hundreds of top-grossing apps.
Browse the gallery