I want to share a small thing that went "wrong" this week, because the lesson in it is more useful than any of my wins.
I shipped self-hosting for my product — the ability to run it on your own infrastructure instead of my cloud. It was real work, I was proud of it, and the obvious move was to announce it to a friendly audience and collect the "nice, congrats" comments.
Instead I did the opposite. I posted it in the one community most likely to tear it apart: r/selfhosted — people whose entire philosophy is not depending on anyone else's infrastructure. If my version had a flaw, they'd find it in minutes.
They did. The flaw: my "self-hosted" still served the admin dashboard from my cloud. The data lived on your machine, but the UI depended on me staying up.
To that audience, the response was immediate and unanimous: "that's disqualified — the moment I rely on your uptime, it's not self-hosting."
And they were completely right. I'd been measuring the wrong thing. I thought "your data on your infrastructure" was the bar. It isn't. The bar is "you don't need me at all." Any dependency — even a dashboard staying online — defeats the entire purpose for the people who actually want this. A half-measure doesn't half-satisfy them; it satisfies none of them.
Here's the part that generalises, and why I'm posting it:
The instinct is to validate with people who'll like your thing. The value is in validating with people who won't. A friendly audience tells you what you want to hear and teaches you nothing. The skeptical audience — the ones predisposed to reject it — are the only ones who'll show you the gap between what you built and what the thing actually needs to be. I learned more from one harsh comment than from a week of supportive ones.
It cost me a little ego and saved me from shipping a "done" feature that wasn't done. Now a fully self-hostable version is on the roadmap, scoped correctly, because the right people told me what correct meant.
So, for the room: