Nobody writes blog posts about killing things, which is exactly why most builders are terrible at it. Knowing when to shut down a product is a harder skill than knowing when to ship one, because shipping fights your laziness and killing fights your identity. The product is yours. You named it. You posted the launch tweet. Shutting it down feels like announcing, in public, that you were wrong — so instead it limps along, eating $43/mo in hosting and a permanent background process in your head. Here's the reframe this post argues for: a clean kill is a feature, not a funeral. The builders who win over a decade aren't the ones who never kill anything. They're the ones who kill fast, kill cleanly, and redeploy the energy into the next bet.
Why killing is so hard (it's not the money)
The hosting bill isn't the problem. The problem is 2 well-documented bugs in human firmware. The first is sunk cost: you've put 200 hours into this thing, so shutting it down feels like setting 200 hours on fire. But the hours are gone either way — the only live question is where the next 200 go. Sunk cost is a backward-looking argument about a forward-looking decision, and it loses every time you state it plainly.
The second bug is identity. Somewhere along the way "I built a product" became "I am the person whose product this is." Killing the product now reads as killing a piece of yourself, so the brain generates impressively creative reasons to keep it alive: maybe a redesign, maybe the market isn't ready, maybe one more feature. Notice that all of these are unfalsifiable. That's the tell. When every reason to continue is unfalsifiable, you're not running a product — you're running a defense attorney.
There's also a quieter cost most builders never tally: the zombie tax. A product that's alive-but-ignored still demands dependency updates, a domain renewal, the occasional support email, and a slice of attention every time you list what you're working on. Zombies don't cost much per month. They cost compounding focus.
Set kill criteria before you're emotionally compromised
The fix isn't more willpower at decision time. It's deciding before you're attached — the same logic as a stop-loss order. You set the exit when you're calm, so the exit doesn't depend on how you feel when it triggers. 3 mechanisms work well together.
First, a hard cost cap. "This product gets $50/mo and not a dollar more" — when an API bill or an ad test would blow past it, that's a forcing function, not a suggestion. (Hedge your own number to your situation; the cap matters more than its size.)
Second, time-boxed experiments. Not "I'll try content marketing," but "I'll publish 8 posts in 90 days, and if organic signups are still under 10/week, that channel is dead for this product." A time box converts a vague hope into a checkable claim. An experiment without an end date is a hobby, and hobbies are fine — just don't confuse them with bets.
Third, leading indicators over lagging ones. Revenue is a lagging indicator; by the time it's flat for 6 months you've burned 6 months. Watch the upstream stuff: activation rate, week-2 retention, whether trial users come back on day 3. If you don't have those instrumented, you can't even tell whether the patient has a pulse — know your funnel performance covers what to wire up. Flat retention plus flat acquisition plus 2 expired time boxes is a kill signal, and you set it up so that past you — the calm one — already agreed.
One honest caveat: criteria can also tell you to keep going. If retention is strong and only acquisition is broken, you don't have a dead product, you have a distribution problem, and those are very different diagnoses.
How to kill cleanly: the wind-down checklist
A bad shutdown — site just 404s one day — torches the one asset that survives a dead product: your reputation with the people who trusted it. A clean kill takes about a week of part-time work and follows a boring, repeatable sequence.
Give users real notice — 30 days minimum, 60 if anyone's paying annually. Plain email, plain reasons. No "incredible journey" essay; users can smell it, and they respect "this didn't find enough users to sustain itself" far more than spin.
Then the mechanical steps: refund prorated unused time (in Stripe it's a few clicks, and it's also just correct); stop new signups immediately so you're not deepening the hole; ship a data export, even a crude JSON dump, because users forgive a dead product but not a data hostage; keep the domain renewed for at least a year with a static goodbye page and a redirect for inbound links; and finally revoke the keys, kill the dynos, archive the repo, and cancel the 6 SaaS subscriptions you forgot the product was paying for. That last one's where the zombie tax was hiding all along.
Killing fast is what lets you bet often
Here's the strategic part, and it's the whole reason to get good at this. Indie building is a portfolio game. Nobody — not you, not an investor, not a launch studio — reliably knows which product works before contact with the market. The honest strategy is many small bets, which only works if the cost of a losing bet is small, and the biggest cost of a losing bet isn't money. It's the months a zombie squats on your attention because killing it felt too heavy.
A builder who can wind down cleanly in a week can afford to launch 4 things a year. A builder who can't will nurse 1 thing for 3 years past its expiry. Same talent, wildly different surface area for luck. The kill switch isn't an admission you expect failure — it's the mechanism that makes trying cheap. It's also, not coincidentally, why so many projects never launch at all: with no clean exit, every launch feels like a life sentence. We dug into that paralysis in why side projects never launch.
This is why LaunchBuddy — a launch studio for unlaunched side projects — builds the kill switch into the harness itself, next to payments, auth, email, and analytics. Every product launched on the rails ships with cost caps and pre-wired wind-down: user notice, refunds, data export, domain handling. And it's contractual, not a vibe — you can kill or port out anytime, and your project leaves cleanly with you. A launch studio that bets on products has to make losing bets cheap; that's not generosity, it's the business model.
Got a project you've been neither growing nor killing? Submit it for a free honest assessment — if it's a no, you get the why, which beats another year of zombie hosting bills. 60 seconds at launchbuddy.app.