They worked. They were stable. They solved real problems. Some were even used by paying customers.
And yet — they went nowhere.
For a long time, I framed this as a distribution problem, or a timing problem, or “I just didn’t push it hard enough.” What I eventually realized is simpler, and harder to accept:
Building software and growing a product are fundamentally different disciplines.
I enjoy building systems. I enjoy architecture, edge cases, tradeoffs, and getting something right under the hood. I’m comfortable living with ambiguity while a system takes shape.
Marketing an app is the opposite. It requires sustained visibility, repetition, positioning, storytelling, and a tolerance for noise. It’s not a phase — it’s the job.
In my case, I treated marketing as something I’d “do later,” once the product was good enough. Later never came. Not because I didn’t know it mattered, but because I didn’t want to spend my limited energy there.
The apps didn’t fail because they were bad. They failed because they required a kind of work I wasn’t willing to do consistently.
That realization was uncomfortable, but clarifying. It forced me to separate pride in building something well from honesty about what I actually want to carry long-term.
Good software doesn’t automatically become a good business. And that’s not a tragedy — it’s a mismatch.
I’m writing this partly as a note to my past self, and partly for anyone who enjoys building but quietly hopes growth will take care of itself. Sometimes the most responsible decision isn’t to push harder, but to admit what game you’re not playing.