Debugging Revenue (From Cold Traffic)
Most indie builders treat revenue like a mystery. It’s not. It’s a system with leaks, and you already know how to find them.
Revenue is a pipeline.
You build the pipes. You connect them. You pour users in one end and hope money comes out the other. But you don’t know where the leaks are until you actually run water through the thing.
This is not a metaphor. This is how it works. Acquisition feeds onboarding. Onboarding feeds the paywall. The paywall feeds revenue. And somewhere in that chain, something is broken. Probably multiple things.
The problem is that when you’re staring at bad numbers, everything looks broken at the same time. And the instinct is to either panic or freeze.
The Skill You Already Have (But Forgot to Apply)
If you’ve spent any time debugging software, you already know what to do.
Isolate the variable. Test. Fix. Move on.
But most technical founders don’t apply this to their business. They apply it to their code, then turn around and treat distribution like a mystery, pricing like a guess, and conversion like luck.
It’s the same problem. Different system.
When I started running cold traffic to Good XP, every metric was terrible. CTR at 0.3%. Cost per install at $5. Conversion rate at 3%. The feeling was familiar, the same sinking anxiety you get when a system is failing in production and you don’t know where.
But the process is also familiar. Don’t try to fix everything at once. Move through the pipeline sequentially. Fix one pipe. Watch what happens. Let the next problem reveal itself.
The First Pipe Is Always Positioning
The instinct is to start with the ads. The creative. The targeting. The channel.
Wrong pipe.
The first question is simpler. Are people searching for what you built?
I started Good XP as a “gamified health” app. A concept I loved. Something I thought was clever and differentiated.
Nobody was searching for it.
I ran Apple Search Ads and found that thousands of people search for “weight loss” every day. Virtually no one searches for “gamified health.” I was building for a market that didn’t exist in search.
The moment I repositioned as a weight loss app, everything downstream got easier. Real users with specific problems started appearing. The product hadn’t changed. The language had.
This is the most common first leak for technical builders. You describe your product in builder language instead of buyer language. You name what you built instead of what they need. And then you wonder why nobody shows up.
Fix One Pipe, and the Next Problem Reveals Itself
Once positioning was fixed, the next bottleneck became visible. People weren’t clicking.
New ad creatives. Multiple angles. Let the platform find the audience instead of guessing who would care. CTR went from 0.3% to 4%. Not a tweak. A fundamentally different result.
Now users were arriving. But too many dropped off before reaching the paywall. Onboarding was 50 screens long. I cut it to 38. Completion rate went from 65% to 75%.
Each fix made the next problem visible. That’s the pattern. You don’t see the second bug until you fix the first one. The pipeline reveals its leaks in order, not all at once.
This is why “everything looks broken” is misleading. It’s not everything. It’s one thing, hiding the next thing, hiding the next thing. Sequential, not simultaneous.
The Real Value of Consistent Traffic
Here’s where paid acquisition earns its role, and it’s not what most people think.
Organic traffic trickles. A few users here, a few there. Enough to feel like something is happening, but not enough to learn from. You can’t debug a system when data arrives randomly.
Consistent traffic, even at small budgets, gives you something invaluable. A daily flow of users entering the top of the funnel. Data you can compare to yesterday. Signal you can act on this week instead of next quarter.
The cost of guessing is always higher than the cost of testing. You just can’t see guessing on a dashboard.
A month of consistent cold traffic taught me which creatives work, what onboarding length converts, where users actually drop off, and exactly which part of the funnel still needs fixing. Six months of organic trickle wouldn’t have given me that clarity.
Knowing What’s Fine Matters as Much as Knowing What’s Broken
Nobody talks about this part.
Once acquisition was healthy, CTR at 4%, cost per install between $1 and $2, 75% of users reaching the paywall, something shifted. Not in the numbers. In the anxiety level.
Because now there’s only one variable left to focus on. The offer. The price. The conversion moment.
This is exactly how debugging software works. You confirm that 80% of the system is functioning. You stop chasing ghosts in code you’ve already verified. You narrow your attention to the 20% that’s still off.
The emotional relief of that narrowing is massive. Going from “everything might be broken” to “I know exactly which pipe leaks” changes the entire experience of running the business. It’s the difference between drowning and swimming.
Most indie builders live in the “everything might be broken” state for months. Not because they can’t fix things, but because they never set up the system to identify which thing is actually broken. They’re debugging without logs.
The Pipe I Haven’t Fixed Yet
Conversion rate is sitting at 7%.
I’m testing $8/week plus $89/year against $11/month plus $59/year. The target is 12 to 20% for the unit economics to hold.
I don’t know if this pricing will work. I don’t know if weekly framing converts better than monthly. I don’t know if the problem is the number or the structure.
But I know it’s the offer. Not the acquisition. Not the onboarding. Not the positioning. Those pipes hold water.
One variable. One experiment. That’s a solvable problem.
Let’s see what breaks.
— Thiago Ricieri
X.com @makingofamaker
Instagram @thgvr or @makingofamaker
Threads @thgvr or @makingofamaker
LinkedIn @thiagoricieri
Substack Making of a Maker written by @thgvr








