Short version: the building was the easy part, and I badly underestimated everything after it.
I wanted a competitor ad research tool. Google's Ads Transparency Center has the data but no public API, so I mapped their internal endpoint by intercepting the requests the site makes to itself. A few things fell out of that:
Shipped it, priced it, published it. Revenue so far: $0.
Three things I got wrong:
1. I validated demand but not access.
I pulled the entire marketplace catalogue I was targeting, 13,214 listings with usage stats, and could read demand per niche straight off it. The median listing gets 4 users a month. The top 100 hold 64% of all demand. Useful.
What that does not tell you is whether anyone will buy from you. The incumbents in my niche have hundreds of thousands of runs and 4.8 star ratings. I have zero reviews. The demand was real. My access to it was not.
2. I assumed the hard part was technical.
It wasn't. Of the places I tried to post about it afterwards, two blocked me outright for having a new account. Not because of what I wrote, but because of what a new account posting links looks like from the outside. Distribution channels defend themselves against exactly the thing you are trying to do on day one.
(This community was one of them, and then Courtland manually promoted my account after I'd left a few comments. Which is sort of the whole lesson in miniature.)
3. The thing that actually worked was not talking about the product.
I published two things the same day: the product, and a technical writeup of the reverse-engineering behind it. The writeup got picked up. The product announcement would have gone nowhere.
Nobody searches for a product they don't know exists. People search for problems constantly.
One concrete thing I found while researching competitors, which I think generalises: one of them is charging 6.7x my price, and its own public description says it is bot-walled and returns empty results. It has real usage anyway. Being findable beats being good, at least for a while, and that is an uncomfortable thing to sit with when you have just spent a day making something work properly.
Genuinely curious from people further along: did you solve the first-five-customers problem with cold outreach, or by giving the thing away until someone vouched for you?
The 6.7x competitor that admits it is bot-walled and still has usage is the annoying part. Un-escaping the hex so you get real HTML was the easy day. First five never came from a cold list for me, they came from people already pissed at the broken tool that week, and I just gave it to them until one of them said so to someone else. Your 13,214 catalogue tells demand, not who will open the message.