I had a side project run for four months without a single user. Not because it was bad — I genuinely don't know if it was bad. Nobody ever saw it.
The Invisible Launch Strategy
It started the same way it always does. I had the idea, I got excited, I opened a new repo. This time it was a small app that tracked BOGO deals at convenience stores — expiry dates, location filters, the usual stuff I wanted myself. Felt useful. Felt buildable.
But then the completeness anxiety kicked in. I told myself I'd show people after I added push notifications. Then after I cleaned up the onboarding flow. Then after I made the empty state look less sad. Each "one more thing" felt completely reasonable in isolation. Stacked together, they quietly ate four months.
The app never went private because I was ashamed of it. It went private because I kept believing it was almost ready.
Polishing Into the Void
Here's the strange part: I was genuinely working. Not doom-scrolling, not burnt out — actually writing code, tweaking UI, moving things around. It felt productive. Looking back, I was doing something closer to nervous fidgeting than building.
Without any users, I had no signal. So I invented my own. I'd stare at a button placement for twenty minutes because there was nothing else to react to. The absence of feedback doesn't create clarity. It creates a vacuum, and I filled it with paranoia.
I redesigned the deal card layout three times. Three times. Nobody had ever seen the first one.
Polishing without feedback isn't refining — it's just burning time in a room with no windows.
The Moment I Noticed It Was Dead
I was adding a feature — some filter for sorting deals by distance — when I realized I hadn't opened the app on my actual phone in two weeks. I'd been building a thing I wasn't even using myself anymore. The excitement had drained out so gradually I didn't notice until it was gone.
That's how these things die. Not with a decision. Just a slow fade while you're still technically "working on it."
I closed the laptop, made coffee, and sat with the uncomfortable question: who was I building this for? My honest answer was pretty grim. I was building it for a future version of me that had already moved on.
What I Did Differently the Next Time
I didn't fix the perfectionism. That'd be a lie. But I made one structural change: I set a hard public date before I felt ready.
Not a launch in the Product Hunt sense. Just a post somewhere saying "here's what I'm building, here's a link, it's rough." Ugly screenshots and all. The accountability wasn't to an audience — there wasn't much of one — it was to myself. Once something is visible, the threshold for "it needs more work before anyone sees it" disappears, because the cat's already out of the bag.
The first version of the next app had a broken filter and placeholder copy in two spots. Someone pointed out both within a day. That single comment was worth more than four months of private polishing.
The first user comment — even a bug report — does more for momentum than a month of solo iteration.
A public deadline doesn't need an audience. It just needs to be real.
Completeness Is a Feeling, Not a State
The BOGO deals app never shipped. It's still sitting in a private repo I haven't touched in eight months. I'm not going to pretend there's a clean lesson there — mostly it just makes me a little sad when I think about it.
What I've learned, slowly and painfully, is that "ready" is a feeling that completeness chasing never actually produces. It just raises the bar one notch ahead of wherever you are. The app needed users to become real, and I never gave it that chance.
Shipping rough things is uncomfortable. But I've been more uncomfortable staring at a dead repo wondering what would've happened.
TL;DR: Keeping a side project private until it's "ready" is a trap — without external feedback, you're just iterating in a vacuum until the energy runs out.
Next episode: I finally tried letting an AI generate the first draft of my onboarding copy — and the result was weirder, and more useful, than I expected.
Get the $31 Stack Prompt Pack — $19
The exact prompts, cost calculator, and n8n templates from this stack.
Top comments (0)