Zombie hand reaching out of laptop screen in dark room, undead project metaphor, horror atmosphere

Graveyard

Zombie Projects — Not Dead, Not Alive, Just Running

The domain is renewed. The server is running. The last commit was eight months ago. Welcome to the project graveyard, where abandoned startups live on life support and nobody has the guts to pull the plug.

TL;DR

Zombie Projects in 60 Seconds

A zombie project is not dead, not alive, just running. The domain auto-renews, the server is up, the last commit was eight months ago.

"On pause" is a lie. Paused implies intention to resume. What you have is an abandoned startup with a heartbeat.

Zombies cost more than money. They drain mental bandwidth, guilt you into inaction, and block you from starting something new.

The sunk cost fallacy keeps them alive. You spent six months building it. You can't just let it die. Yes, you can — and you should.

The cure: audit every project. Ship it, sell it, open-source it, or kill it. No more "I'll get back to it."

Killing a zombie frees up the one resource you can't buy back: your attention. That attention is worth more than any half-dead side project.

The Anatomy of a Zombie Project

You know the symptoms. The landing page still loads. The SSL certificate auto-renews. There might even be a user or two trickling in from some forgotten backlink. But nobody is home. No commits, no updates, no roadmap. The project exists in a limbo state — technically alive, functionally dead.

Graveyard projects are the indie builder's version of a body that forgot to stop breathing. They sit on your server, eating resources and bandwidth, while you pretend they're "on pause." They're not on pause. Paused implies intention to resume. What you have is an abandoned startup with a heartbeat.

The telltale signs are always the same: a GitHub repo with cobwebs, a Slack channel with the last message reading "will fix Monday," and a Stripe account that still charges $20/month for hosting nobody uses. The project isn't dormant — dormant things wake up. This thing is undead.

Clean terminal showing a single active repository with recent commits and green status indicators, organized workspace
Cluttered dashboard showing dozens of abandoned repos, expired SSL warnings, and stale deploy logs glowing red in the dark

Why You Can't Let Go

The psychology behind zombie projects is surprisingly simple: shutting something down feels like admitting failure. As long as the server runs, you haven't failed. You've just... not finished yet. There's a difference, right?

Wrong. The perpetual beta mindset and the zombie project share the same root — an inability to draw a line and say "this is done, and done means over." Every indie builder has at least one project they keep alive purely out of guilt. You spent six months on it. You told people about it. You bought the domain for three years.

But here's the uncomfortable truth: keeping a dead project alive costs more than killing it. Not just in hosting fees — in mental overhead. Every zombie project occupies a slot in your brain. It's one more thing on the list you'll never get to, one more tab you keep open, one more source of low-grade anxiety every time someone asks "so what happened with that thing?"

The Real Cost of Keeping Zombies Alive

Let's do the math. A typical zombie project costs you:

Multiply that across two or three graveyard projects and you're bleeding resources into the void. The hosting costs alone could fund your next real project. The mental bandwidth could be the difference between shipping something new and staying stuck in maintenance mode for things nobody cares about — including you.

And then there's the opportunity cost. Every hour you spend "maybe I should update that thing" is an hour not spent building something that matters. Zombie projects don't just drain resources — they prevent new ones from being born.

Comparison

Dormant Project vs. Zombie Project

One is sleeping with a plan. The other is decomposing with an excuse.

Dormant

  • 🟢
    Has a specific trigger to resume — a date, an event, a dependency
  • 🟢
    You can articulate why it's paused and when it restarts
  • 🟢
    Still generates value passively — users, revenue, or learning
  • 🟢
    The codebase is clean and you could pick it up in a day
  • 🟢
    You feel calm when you think about it

Zombie

  • 🔴
    No concrete plan to resume — just "eventually" or "when I have time"
  • 🔴
    You avoid thinking about it and change the subject when asked
  • 🔴
    Zero meaningful activity — no users, no commits, no progress
  • 🔴
    The codebase is stale and you'd need days just to remember how it works
  • 🔴
    You feel guilt or dread when you see it in your bookmarks

Dormant vs. Dead — Know the Difference

Not every quiet project is a zombie. Some projects are genuinely dormant — seasonal tools, niche utilities that work fine without updates, side projects waiting for the right moment. The difference is intent and honesty.

A dormant project has a reason to exist and a trigger to resume. "I'll revisit this when the API they depend on ships v2" is dormant. "I'll get back to it eventually" is dead. If you can't name a specific condition under which you'd actively work on it again, it's not sleeping. It's a corpse.

Be honest with yourself. Open the repo. Look at the last commit date. Look at the issues. Look at the analytics. If the answer to "would I start this project today, knowing what I know now" is no — congratulations, you've identified a zombie. Now do something about it.

How to Properly Kill a Project

Shutting down a project is a skill, and most indie builders never learn it. Here's the protocol:

  1. Archive, don't delete. Make the repo read-only. Push a final commit that says "archived." Keep the code — you might reuse pieces later.
  2. Redirect or sunset the domain. Either point it to your main site or let it expire. Don't leave a broken landing page floating around the internet.
  3. Notify users. If anyone actually uses it, give them notice. A simple "this project is shutting down on [date]" email is enough. Respect the people who gave you their time.
  4. Kill the infrastructure. Cancel the hosting. Remove the CI/CD pipelines. Delete the monitoring alerts. Every piece of infrastructure is a thread tying you to something that no longer matters.
  5. Write the postmortem. Not for anyone else — for you. What did you learn? What would you do differently? The project graveyard becomes a learning tool when you treat each dead project as a case study, not a shame.

Killing a project isn't failure. It's triage. You're reallocating resources from something that can't be saved to something that can.

Decision Tool

The Zombie Audit

Five questions to determine if your project is undead

When was the last meaningful commit?

Not a dependency update or a typo fix — a real feature, a real fix, a real decision. If the answer is measured in months, the project is cold. If you can't remember without checking, it's already dead.

Can you name the next three things you'd build?

Active projects have a backlog that excites you. Zombie projects have a vague sense of "I should probably..." If you can't list three concrete next steps in 30 seconds, there's no roadmap — just guilt.

Does anyone besides you care if it disappears?

Check your analytics, your inbox, your support channels. If zero humans would notice the project vanishing tomorrow, it's not serving anyone. Keeping it alive is a performance for an empty theater.

Would you start this project today?

The sunk cost killer. Forget everything you've built. If you had the idea today with zero code written, would you begin? If no, the only reason it exists is because it already exists — and that's not a reason.

Is it costing you more than money?

Hosting fees are obvious. The hidden cost is the mental tab it keeps open — the low-grade guilt every time you see it in your bookmarks, the awkward explanation when someone asks about it. If it drains your energy, it's a zombie.

Graveyard as a Learning Tool

Every experienced indie builder has a graveyard. The difference between a good builder and a stuck one isn't the number of dead projects — it's what they did with the bodies.

Your graveyard projects contain lessons you paid for in time, money, and emotional energy. The project that failed because you never validated the market? That's a lesson in startup idea validation. The one that died because you couldn't stop adding features? That's a lesson in scope. The one you abandoned because something shinier came along? That's a lesson in commitment.

Stop treating your project graveyard like a source of shame. Start treating it like a curriculum. Every dead project taught you something. If you can't name what it taught you, you haven't finished learning from it yet.

The best founders aren't the ones who never fail. They're the ones who fail fast, learn deliberately, and move on without dragging zombie projects behind them like chains.

Step by Step

How to Audit and Kill Your Zombie Projects

A weekend protocol for clearing out the undead and reclaiming your focus

  1. List every project you're technically responsible for

    Open your hosting dashboards, domain registrar, GitHub repos, and Stripe accounts. Write down every project that has your name on it — active, dormant, or forgotten. If it has a URL, a repo, or a recurring charge, it goes on the list.

  2. Score each project: ship, sell, open-source, or kill

    For each project, pick one of four verdicts. Ship means you commit to finishing it within 90 days. Sell means you list it on a marketplace. Open-source means you push the repo public and walk away. Kill means you shut everything down. There is no fifth option.

  3. Kill the obvious zombies first

    Start with the easiest decisions — the projects you haven't touched in six months and feel nothing about. Cancel the hosting, archive the repo, let the domain expire. Each one you eliminate frees a mental slot immediately.

  4. Archive the code and write a one-paragraph postmortem

    Before you delete anything, push a final commit with a note in the README: what the project was, why it died, and one thing you learned. This turns dead code into a reference you can revisit without guilt.

  5. Set a recurring audit every quarter

    Zombie projects don't appear overnight — they accumulate slowly. Put a recurring calendar reminder to review your project list every three months. If anything hasn't moved since the last audit, it's a zombie. Act accordingly.

FAQ

Frequently Asked Questions

Quick answers about zombie projects and when to pull the plug

What is a zombie project?

A zombie project is a side project or startup that's technically still running — the domain is active, the server is up — but hasn't received meaningful development, updates, or attention in months. It's not actively maintained, but nobody has officially shut it down either.

How do I know if my project is a zombie or just dormant?

Ask yourself one question: can you name a specific, concrete condition under which you'd resume active work on it? If yes, it's dormant. If your answer is "eventually" or "when I have time," it's a zombie. Dormant projects have triggers. Zombie projects have excuses.

Is it okay to keep graveyard projects in my portfolio?

Only if they still work and represent your skill level. A broken app with outdated dependencies and a 2022 copyright doesn't make you look experienced — it makes you look careless. Either maintain it to a presentable standard or remove it.

What should I do with the code from a dead project?

Archive the repository rather than deleting it. You might reuse components, patterns, or lessons later. Write a brief postmortem in the README explaining what the project was, why it died, and what you learned. This turns dead code into a reference library.

How do I stop accumulating zombie projects?

Set kill criteria before you start. Define upfront what success looks like and what failure looks like — with numbers and dates, not vibes. If your project doesn't hit its milestones by the deadline, you make the call: pivot, recommit with a new plan, or shut it down. No limbo.

Next Read

More Graveyard Diseases

Door with a forever under construction sign covered in cobwebs, dark abandoned corridor

Perpetual Beta

"We're still in beta" is the startup version of "it's not you, it's me." The product will never be ready because ready means accountable.

Fork in a dark road with one path leading to light and the other to darkness, decision crossroads

Pivot or Quit

The hardest question in indie building: is this a problem you can fix, or a project you need to walk away from?

Single burnt matchstick still faintly smoldering next to a row of fresh unlit matches, dark background, dramatic macro photography, warm ember glow against cold tones

Startup Burnout

The slow burn that turns passion into exhaustion. You're still shipping, but you stopped caring three months ago.

Ornate hourglass with sand frozen mid-fall suspended in time, golden grains hanging motionless in the air, dark background, dramatic macro photography, warm side lighting

Procrastination

Researching, planning, reorganizing — anything but the one task that would actually move the project forward.