220 apps means we've shipped some apps that don't work. Not technically don't work — they work fine as software. They don't work as products. Nobody uses them. Nobody wants them. The space isn't there.

The question is: do you keep shipping them or do you kill them? The answer is that you kill them, and the discipline of killing is more important than the discipline of shipping. Here's the framework.

The Four Criteria

A vertical gets put on the kill list if three of these four are true:

  1. Zero paying customers after 6 months. Not a single Hosted Pro signup. No one's willing to pay for it.
  2. Under 20 GitHub stars after 6 months. No community signal. Nobody's even curious enough to star the repo.
  3. Under 50 landing page visits/month. No organic traffic. SEO isn't finding us for this query, or nobody's searching.
  4. No inbound emails in 6 months. No one cares enough to ask a question.

If three of four are true, we put the vertical on a 90-day watch. If nothing changes in 90 days, we archive it.

What "Archive" Means

Archive is softer than "kill." We:

No Hosted Pro customer gets kicked off. But the vertical stops consuming new development attention.

What We've Killed

I'll name names. In 18 months we've archived six verticals:

pindesk — A bowling alley ops app. Built it because one of my college friends manages a bowling alley. He didn't use it. Zero customers. Zero inbound. Zero interest. Archived at month 8.

junkremovaldesk — An ops tool for junk-removal operations. Market exists (there are lots of small junk-removal crews), but they already use Jobber or ServiceTitan. Our value prop wasn't differentiated enough. 2 signups, both churned. Archived at month 9.

permitpulse — A permit tracker for small contractors. Market exists but is dominated by BuildPulse and a few incumbents. Our AI-readiness angle didn't land with this audience. 0 signups. Archived at month 7.

granthunter — A grant-tracking tool for nonprofits. Nice audience. Already served by Instrumentl and a few others at price points we couldn't undercut profitably. 1 signup, churned at month 2. Archived.

axethrowingdesk — An ops app for axe-throwing venues. Too niche. There are maybe 400 axe-throwing venues in North America, and of those maybe 50 are independent enough to consider custom software. At 3% conversion, that's 1-2 customers. Not worth the shelf space. Archived at month 6.

washqueue — A car-wash ops tool. Market dominated by specialized vendors we couldn't compete with on features. 0 signups after 8 months. Archived.

All six are still live on GitHub, still get occasional views, and could be revived if the data changed. But they're not consuming my attention or Jess's.

What the Archive Process Teaches

Three things emerge from the archived verticals:

Niches where incumbents are established are hard. junkremovaldesk and washqueue both had real markets, but those markets already had software. Entering with a slightly different angle wasn't enough. We need markets where the software doesn't exist, not where it exists and we're cheaper.

Audience size matters as a floor. axethrowingdesk's market was genuinely too small. Even at 100% capture of every axe-throwing venue in North America, the TAM was under $500K. Not worth pursuing.

Personal interest is a necessary but not sufficient condition. pindesk was built because I had a friend in the industry. That didn't translate to a broader market. Personal anecdote is a starting signal, not a business case.

The Watch List

As of this writing, 11 verticals are on the 90-day watch. Won't name them here because the publicity of being on the list could influence their fate (someone might sign up just to "save" them). Quiet archival is better than public drama.

By the end of the year, 5-8 of the watch list will be archived. The rest will have generated enough traction to survive another cycle.

What Survives

The verticals that have clearly survived the pruning criteria:

These are the verticals I spend most of my time on. The ones not on this list get less attention by design.

The Rule of Honest Assessment

The hardest part of pruning is being honest about your own creation. Every vertical I've archived was a vertical I was personally excited about at ship time. pindesk was fun to build. axethrowingdesk was a solved puzzle. None of that matters if nobody wants the result.

The discipline of pruning forces honesty. Either the data says someone wants this, or it doesn't. Enthusiasm isn't evidence. Shipping isn't selling.

The opposite of sunk-cost fallacy is the kill list. If you can't list the products you've killed, you're running a graveyard, not a factory.

Related

The 220-app thesis. Why niche is the moat. The economics that pruning protects. The year-one retro that the kills feed into.

The Counterintuitive Lesson

Pruning creates shipping confidence. It sounds backwards. Surely the willingness to ship 220 apps comes from a willingness to keep them? In practice, the willingness to ship comes from knowing I'll cut what doesn't work. Without that exit valve, every new vertical would feel like a permanent commitment, which would make me much more conservative about what I ship.

The pruning discipline is what lets us be aggressive about shipping. Knowing I can kill an app frees me to start one. Knowing I will kill ones that don't work means the catalog stays meaningful. Both halves matter.

What Pruning Doesn't Mean

Pruning isn't impatience. A vertical doesn't get killed because it had a slow first month. It gets killed because it had a slow six months and shows no signal of improvement. Apps need real time to find their audience — SEO takes a year, community takes six months, word-of-mouth takes longer. The 6-month bar is the floor, not the standard.

Pruning isn't anger. I don't kill verticals because I'm frustrated with them. I kill them because the data is unambiguous. The decision is procedural, which removes the emotional cost — and removing the emotional cost is what makes the discipline sustainable.