$600/mo zombie sub cut in a Claude Code SaaS audit
He audited his paid tools with Claude Code and cancelled a $600/mo Jina/Firecrawl API he calls a zombie sub. Analytics, newsletter, affiliate and screenshot tools now run on one Hetzner server.
From ILIAS ISM on X ·Oct 2026
What they did
He audited every paid tool with Claude Code and called it "a bloodbath."
On one Hetzner box he rebuilt web analytics (Bun + SQLite, 23 sites), his newsletter (Resend batch API) and affiliate tracking (2 Postgres tables).
He cancelled a Jina/Firecrawl API he calls a "$600/mo zombie sub."
He swapped a paid screenshot API for self-hosted Browserless: S3 cache first, local capture next, the external API only for Cloudflare challenges.
⚠
Self-reported. The $600/mo Jina/Firecrawl line is a cancelled sub he calls a "zombie", not a replaced service. The screenshot shows his screenshot-pool report, not the $600 bill. He builds LinkDR, his own product.
Copy the prompt
Ours Our version, based on what Ilias Ism described in his posts and replies. He shared no prompt or repo. Fill in the [BRACKETS].
Audit what I pay for in software and APIs. Don't cancel, downgrade or delete anything: you report and build, I decide and cancel.
Here's my list of paid tools and APIs with monthly cost: [paste list or billing export]
1. For each tool, find out how I actually use it: search this codebase and my configs for its SDK, API keys and endpoints, and estimate call volume where logs show it.
2. Sort every tool into one of four buckets:
- ZOMBIE: paid, but nothing calls it any more
- REPLACEABLE: I use a small slice of it that a small service on my own server could do
- KEEP: hard to replace, or the risk isn't worth it
- UNSURE: you couldn't tell; say what you'd need to check
3. For each REPLACEABLE tool, describe the smallest replacement on my server [server details] and what I'd give up. Prefer a cache-first design with the paid tool kept as a fallback.
4. Give me a table: tool, monthly cost, bucket, evidence, replacement plan, risk.
5. When I pick one to replace, build it on a branch. Keep the paid tool as a fallback until I've checked the replacement on real traffic.
For a self-hosted browser or screenshot service specifically:
- Check the storage cache first; only capture if there's no copy.
- Run each capture in its own browser context and close it right after.
- Cap concurrent browsers and queue the rest.
- Fall back to the paid API only when a capture fails or hits a bot challenge, and log how often that happens.
Set it up
Export every tool and API you pay for, with its monthly price.
Run the prompt in Claude Code inside the repos that use them, and cancel the zombies yourself.
Replace one tool at a time, keeping the paid plan as a fallback until the new one holds up.
🛡 The agent lists the tools, builds replacements and reports. You decide what to cancel, cancel it yourself, and check a replacement works before the old tool goes. Sending, buying, posting, and deleting always need a human.