I had a blog post ready to publish this week. A post about the thing I’ve been building. The product behind all the thinking and writing I’ve been doing lately. It was done. Reviewed. Scheduled.
I pulled it.
When I published my post about the silence in the WordPress ecosystem last week, I braced for pushback. I’d spent months going back and forth on whether to write it at all. The thoughts had been there for years. The courage to put them out there had not.
What happened instead caught me off guard. People didn’t push back. They leaned in. DMs from developers I’d never spoken to, saying they felt the exact same way but never said it. Comments that carried a weight I wasn’t prepared for. Not just agreement. Emotion. Relief, almost, that someone had said it.
My second article last week, about decentralised distribution, landed the same way. More messages. More recognition. The same pattern: people saying “this is what I’ve been thinking” with an intensity that told me this wasn’t casual agreement. It was something they’d been carrying.
I sat with those responses for days. Read them multiple times. And slowly, something shifted.
The moment it broke
While I was writing those articles, I was also building a product in the same space. Something I’d been working on for months, aimed at giving developers back control over a part of their infrastructure they’d been outsourcing by default. The writing and the building had been running in parallel, feeding each other. I had a post ready to introduce it.
But the responses to those articles didn’t just validate the writing. They broke something open. They made me feel the actual size of the problem I’d been describing.
There’s a difference between understanding something intellectually and having it land emotionally. I’d been writing about centralisation, about dependency, about the structural risks of letting critical infrastructure live under a single point of control. I believed every word. But the volume and depth of the response showed me something I hadn’t fully grasped: how deeply this affects people’s daily reality. How many developers sit with this frustration in silence, not as an abstract concern, but as something that shapes their livelihood, their decisions, their sense of autonomy.
And then I looked at what I’d built.
The product works. Technically, it’s solid. It does something real and useful. But when I held it up against the problem I’d been describing, against the weight of what people were telling me they needed, it didn’t feel like an answer. It felt like a first step dressed up as a destination.
The question I couldn’t shake
What followed was a weekend of honest discomfort. The kind where you know something is off, but you don’t want to look at it too closely because looking at it means changing the plan.
I kept coming back to one question: am I solving the problem, or am I just naming it loudly enough that people assume I’m solving it?
That’s an uncomfortable thing to ask yourself when you’ve spent months building something. When you have momentum. When the timing feels right and the audience is warm and everything in you is saying: just ship it, iterate later, don’t overthink this.
But the discomfort wouldn’t go away. Because the product I’d built, while real and functional, solves a piece of the puzzle that other tools already solve. Not badly. Some of them are genuinely good. The thing that makes my vision different isn’t the current feature set. It’s where it’s going. And “where it’s going” is not something you can ship.
So the question became sharper: do I publish the launch post because the product is ready, or because the narrative is ready? Those are very different reasons.
What momentum actually feels like
There’s a version of this story where I push through. Where I ride the wave of those articles straight into a launch. The audience is engaged. The message has landed. The moment is here.
I know what that momentum feels like. It’s intoxicating. Two posts that resonated more than anything I’ve ever written. An inbox full of people who believe in what I’m saying. A product that works, sitting right there, ready to be shown.
Every instinct says: go. Ship it. The feedback loop will be more valuable than waiting. Perfect is the enemy of good. You’ve heard it all before. I’ve told it to myself a hundred times these past couple days.
But there’s a difference between launching before something is perfect and launching before something matches the promise you’ve been making. The first is pragmatic. You ship, you learn, you improve. The second is something else. It’s borrowing credibility from your words to cover for what your product can’t yet deliver.
I didn’t want to be the person who wrote passionately about a problem and then shipped something that only sort of addressed it, hoping the strength of the argument would carry the product past the gap.
The harder choice
So I stopped. Not building. I’m still building. Every day. But I stopped the launch. Pulled the post.
It doesn’t feel good. There’s no clean resolution here, no satisfying turning point. Stopping when you have momentum feels like waste. Like you’re leaving opportunity on the table. Like the moment will pass and you’ll have missed it.
Maybe. But I’d rather miss a moment than misuse one.
The people who responded to those articles trusted me with something. Their recognition, their frustration, their hope that someone in the ecosystem was going to do something about the problems they’d been carrying in silence. Using that trust to launch a product that doesn’t yet live up to it would be a betrayal of the very thing I’ve been arguing for. Independence. Honesty. Building things that are real, not things that are well-marketed.
What I’m left with
The vision hasn’t changed. If anything, it’s sharper now. The responses didn’t just validate the problem. They shaped my understanding of what the solution needs to be. Broader than what I’d originally scoped. More ambitious. Harder to build. But right.
The product I have is a foundation. A real one. The technical decisions I’ve made, particularly the recent architectural changes that prioritise independence over convenience, point in the right direction. There’s more to build before it earns the introduction I was planning to give it.
I don’t know exactly when that will be. I’m not going to put a timeline on it.
What I do know is this: when I introduce what I’ve been building, it will be because the product can stand on its own. Not because the blog post before it was persuasive enough to fill the gap.
Why I’m telling you this
Because I think this tension is more common than people admit.
If you’ve ever built something and then questioned whether your marketing was ahead of your product. If you’ve ever had momentum and wondered whether the momentum was yours or just the topic’s. If you’ve ever written something that resonated and felt the weight of having to follow through on it. Then you know this feeling.
The default in our industry is to ship. To launch. To announce. To ride the wave. And most of the time, that’s right. Most of the time, the thing you’re holding back is closer to ready than your anxiety suggests.
But sometimes the gap is real. Sometimes the honest move is to say: not yet. Not because you’re afraid. Not because you’re perfectionist. But because you respect the people listening enough to only show them something that’s actually worth their attention.
I’m still building. The silence between these posts isn’t absence. It’s work.