After 1.5 years and 10+ apps published, this is what I learned that I wish somebody told me before:
- More apps ≠ more revenue or more users
- Speed is no longer a moat. If you can build an app in a weekend, someone else can build it by Friday
- Users don’t care which stack you used
- Clean code won’t fix a problem nobody has
- More features won’t fix weak positioning
- Shipping is not distribution
- Downloads ≠ retention
- Compliments ≠ payments
- A launch is one day. Distribution is every day after
- Starting another app is easier than finding out why the last one failed
- Adding features is easier than talking to customers
- Rewriting the code is easier than rewriting the offer
- Shipping can become a way to avoid selling
- Every unrelated app means starting your audience from zero again
- One customer using an ugly version teaches you more than 100 people saying “cool idea”
- The hardest part is no longer building the product. It is knowing what deserves to be built
A product should never start on your disk.
It should start with a problem you understand better than most people.
Then:
- Find people already dealing with that problem
- Ask how they solve it today
- Find where they waste time or money
- Offer the result manually
- Try selling it to two people
- Deliver it yourself
- Notice which steps repeat
- Automate those steps
- Charge before polishing
- Build the software after proving the result
The lesson I kept avoiding:
I kept thinking the app was the product.
But a coach doesn’t wake up wanting a new dashboard. They want clients to stop missing check-ins.
A founder doesn’t want another automation tool. They want the repetitive work gone.
A freelancer doesn’t care about invoice features. They want to get paid sooner.
Result is what people pay for.
The software just helps me scale and deliver it repeatedly without doing everything by hand.
So next time, I’ll start with the person, understand the result they already want, and only build the software.
If the page says $20 but checkout still charges $30, the coding agent isn’t done.
On Co-Design Bench’s selected hard tasks, the best model passed 69.9% of requirements per task on average. It met every requirement on just 26.4% of tasks.
“I changed the price, but I haven’t tested checkout yet.”
I’d rather hear that than find out from a customer.
If the page says $20 but checkout still charges $30, the coding agent isn’t done.
On Co-Design Bench’s selected hard tasks, the best model passed 69.9% of requirements per task on average. It met every requirement on just 26.4% of tasks.
“I changed the price, but I haven’t tested checkout yet.”
I’d rather hear that than find out from a customer.
1,500 followers!! 🎉🥹
I started sharing my builds here 1.5 years ago.
I’ve had days where I couldn’t wait to post an update.
I’ve also had to take breaks.
Getting back into it has been hard.
I’d lost my momentum.
At times, I’d lost interest too.
I’m starting to enjoy building and sharing again.
Seeing 1,500 of you here today made me smile.
Thank you to everyone who got me here ❤️
1,500 followers!! 🎉🥹
I started sharing my builds here 1.5 years ago.
I’ve had days where I couldn’t wait to post an update.
I’ve also had to take breaks.
Getting back into it has been hard.
I’d lost my momentum.
At times, I’d lost interest too.
I’m starting to enjoy building and sharing again.
Seeing 1,500 of you here today made me smile.
Thank you to everyone who got me here ❤️
The weirdest Fable 5.2 tip I’ve seen today is to tell it the codebase belongs to it.
Apparently we’re negotiating ownership with the coding agent now.
Anthropic tested this on small coding tasks, and an instruction saying the code was its own made it combine repeated code in about half the attempts, compared with less than 10% without it.
It also changed how some features worked without being asked, which is where I’d want it to slow down a bit. Cleaning up the code is fine, but I still expect the app to do the same thing afterwards.
I’d try this on a project where I actually want it to rethink the structure, because giving it room to question the code makes sense there.
For a small fix though, I still want a small fix. I’m the one who has to understand everything it changed afterwards, even if we’ve apparently agreed the repo is now its property.
The weirdest Fable 5.2 tip I’ve seen today is to tell it the codebase belongs to it.
Apparently we’re negotiating ownership with the coding agent now.
Anthropic tested this on small coding tasks, and an instruction saying the code was its own made it combine repeated code in about half the attempts, compared with less than 10% without it.
It also changed how some features worked without being asked, which is where I’d want it to slow down a bit. Cleaning up the code is fine, but I still expect the app to do the same thing afterwards.
I’d try this on a project where I actually want it to rethink the structure, because giving it room to question the code makes sense there.
For a small fix though, I still want a small fix. I’m the one who has to understand everything it changed afterwards, even if we’ve apparently agreed the repo is now its property.
When Anthropic release a new model it's always worth taking a look at their updated prompting guide - here's an entertaining tip to make Fable 5.2 less likely to be cautious in how it improves existing code: tell it "This codebase is yours" https://t.co/mKjdw4QPxV
I thought I was supposed to let Claude work for me while I play GTA 6.
Instead, someone built an MCP that lets Claude play GTA in the background while they keep working.
Well, Claude gets the game and I get the work. I think we got this backwards.
I thought I was supposed to let Claude work for me while I play GTA 6.
Instead, someone built an MCP that lets Claude play GTA in the background while they keep working.
Well, Claude gets the game and I get the work. I think we got this backwards.