Operations
When to Kill a Side Project Cleanly
By C. V. Wooster
Archive, redirect, and write the postmortem while memory is fresh.
Every studio accumulates projects that no longer earn their keep: a tool that solved a problem that has since disappeared, a site whose audience moved on, an experiment that never found traction. Most of them don't get shut down. They just linger, consuming hosting costs, security attention and a small but constant share of mental energy.
Ending a project well is a skill. Done carelessly, it leaves broken links, confused users and lost lessons. Done cleanly, it frees time and money for work that matters and leaves something useful behind. Here's how we approach it at Taciturn Studios.
Why we keep projects too long
The main obstacle to ending a project isn't technical. It's psychological.
Sunk costs. In a classic 1985 study published in Organizational Behavior and Human Decision Processes, Hal Arkes and Catherine Blumer showed that people are more likely to continue an endeavor once they've invested money, effort or time in it, even when continuing no longer makes sense. The time already spent on a project feels like a reason to keep going. It isn't; it's gone either way.
Identity. Projects become part of how we see ourselves. Shutting one down can feel like admitting failure.
Optimism. There's always a chance it could take off with one more feature or one more push.
The former professional poker player Annie Duke makes the case in her book Quit (2022) that people tend to quit too late rather than too early, and that deciding on quitting criteria in advance helps. We've found that to be true.
Signals that a project should end
We revisit every project periodically with the same questions we use when deciding what to ship: who is it for, how does it pay for itself, and what does it cost to keep alive? A project becomes a candidate for retirement when several of these apply:
- Usage has been flat or declining for a sustained period, despite reasonable effort.
- It doesn't cover its own running costs and has no realistic path to doing so.
- Maintenance takes a disproportionate share of time compared with its value.
- The platform or need it served has changed or disappeared.
- A better alternative now exists, possibly a free one.
- Nobody on the team is excited to work on it, so it's quietly decaying.
The scorecard we describe in Measuring Fleet Health Beyond Vanity Traffic makes these signals visible before a project becomes a burden.
Options short of a full shutdown
Ending a project doesn't always mean deleting it. Consider:
- Freezing. Stop adding features, keep it running with minimal maintenance, and accept that it is what it is.
- Merging. Fold its useful parts into a related product or site.
- Handing off. Give or sell it to someone who wants to continue it.
- Making it static. A dynamic app can sometimes become a simple static page with the most useful information preserved, cutting hosting and maintenance costs to nearly zero.
A clean shutdown checklist
When a project does need to end, a checklist keeps it from leaving a mess.
1. Tell the people who use it
Give users notice proportional to how much they depend on it. Explain what's happening, when, and what alternatives they have. If users have data in the system, give them a way to export it and a clear deadline.
2. Handle money properly
Cancel subscriptions so nobody is billed for a service that's going away, and issue refunds where appropriate. Turn off payment integrations once they're no longer needed.
3. Preserve URLs
Links to the project live on in search results, bookmarks and other people's articles. Breaking them all wastes that accumulated value and frustrates visitors.
- If the content moves to another site, use 301 (permanent) redirects from old URLs to the most relevant new pages. Google's documentation on redirects describes 301s as a strong signal that the new URL should replace the old one in search.
- Avoid redirecting every old URL to a homepage; Google may treat irrelevant mass redirects as soft 404s.
- If content is gone for good with no replacement, returning 404 or 410 is honest and lets search engines drop the pages.
4. Archive the code and data
Archive the repository (GitHub lets you mark a repository read-only) with a final README update explaining that the project is retired, when and why. Export and securely store any data you're required to keep, and delete what you're not, in line with your privacy policy.
5. Revoke access and secrets
Rotate or revoke API keys, remove webhooks, delete unused cloud resources, and close accounts on third-party services. Forgotten credentials and running resources are both a cost and a security risk. Our repo hygiene notes make this easier when the configuration is documented.
6. Update everything that points to it
Remove the project from navigation, sitemaps, portfolio pages and email footers across your other sites.
Write the postmortem while memory is fresh
Finally, write a short postmortem. The Google Site Reliability Engineering book popularized the idea of blameless postmortems for incidents; the same spirit works for retired projects. The goal isn't to assign fault but to capture what you learned.
A simple template:
- What was the project meant to do, and for whom?
- What went well?
- What didn't work, and why do we think so?
- What signals did we miss or ignore?
- What would we do differently next time?
- What parts (code, content, audience) can be reused?
Writing this within a week or two of shutdown matters. Details fade fast, and in six months the lessons will have blurred into a vague sense that "it didn't work out."
Ending as a form of focus
Retiring projects cleanly is what makes room for new ones. Every lingering project takes a little attention, and a small studio doesn't have much to spare. Ending things well, with notice, redirects, an archive and a written lesson, respects the people who used the project and the work that went into it. It also makes the next decision about what to build a little wiser.