Most solo founders do not have a spending problem. They have a visibility problem. Twelve subscriptions at $9 to $49 per month each never feel heavy individually. Annualized, they are a junior salary. And because each one is billed to a different card on a different cycle, the leak is invisible until runway gets short.
This is a 7-day audit you can run alone, without a CFO and without a spreadsheet guru. It ends with a smaller stack, a documented decision per tool, and a repeatable cadence so the leak does not grow back.
Why SaaS burn rate sneaks up on solo founders
The pricing model is designed to hide from you. Per-seat pricing sounds fair until you count seats you created for CI bots, staging environments, and that one contractor from eight months ago. Usage-based pricing sounds cheaper until an overage invoice arrives after a launch spike.
Three structural reasons the leak compounds:
- No single owner of the total. You approve each tool in isolation, at the moment of pain. Nobody ever approves "the sum".
- Cancellation friction is deliberate. Downgrade flows, retention calls, and dark-pattern billing pages exist to make the decision cost more than the subscription.
- Replacement is priced in effort, not money. A $29/month tool feels cheaper than 6 hours of migration. That comparison is only valid if your hour is worth less than the tool — for most solo founders it is not.
Days 1–2: Build the ledger before you build the opinion
Do not cancel anything on day one. The first job is a complete inventory, because the tools you forgot are exactly the ones you cannot justify.
Where to source the list
- Last 3 months of business card and bank statements, filtered for recurring charges.
- Apple App Store and Google Play subscription pages (mobile tools hide here).
- Email search for
receipt,invoice,your subscription,renews on. - Vendor dashboards: every tool with a "members" page has seats you forgot to remove.
- Cloud and VPS providers, including snapshots, static IPs, and idle volumes.
- API bills: LLM tokens, email, SMS, maps, transcription.
The six-column ledger
One row per subscription. Columns: tool, monthly cost, seats actually used vs paid, last meaningful use, data stored, replacement candidate, decision. The "last meaningful use" column is where the audit pays for itself — anything untouched for 45 days is a candidate for cancellation regardless of how good the tool is.
Add one derived column: annual cost = monthly × 12. Seeing $348/year instead of $29/month changes the conversation you have with yourself.
Days 3–4: Classify, do not negotiate
Every row gets exactly one of four verdicts. Ambiguity is how tools survive audits.
- Kill. Unused for 45+ days, or used once a quarter for something a script does. Cancel today, export data first.
- Consolidate. Two tools doing the same job (three note apps, two uptime monitors, two error trackers). Keep the one with your data gravity, migrate the rest.
- Downgrade. Genuinely used, but the plan is oversized: remove paid seats for bots, drop the enterprise tier, switch monthly to annual only after 60 days of proven usage.
- Self-host. Used daily, expensive per seat, and the workload is boring enough that a single binary or container can carry it.
The four questions that decide "self-host"
- Does it run on one small VPS with a database and a volume?
- Can I restore it from backup in under 30 minutes without reading a 40-page runbook?
- Is the data mine in an open format if the project dies?
- Would a two-hour outage at 2 AM cost me more than the subscription saves?
If you answer yes, yes, yes, no — self-host it. If the fourth answer is yes, keep paying. That is not weakness, it is pricing risk correctly.
Days 5–6: Migrate to the sovereign stack
Self-hosting stopped being a hobbyist trade-off. A single $6–20/month VPS with a container runtime now covers the work that used to require five SaaS vendors.
A realistic mapping
- Termius / SSH clients → CATerm. Multi-host terminal, session management, and ops panels in one workspace instead of a per-seat subscription.
- PagerDuty / Opsgenie → CAShell watchdog. A Rust CLI with health probes, cron-style checks, and alert fan-out to Telegram or email. Alerting is a script, not a seat license.
- Datadog / New Relic → self-hosted metrics. Prometheus plus Grafana on the same VPS, or plain structured logs with a retention policy. You need 8 charts, not 400 integrations.
- Vercel / Netlify Pro → Coolify. Git-push deploys, TLS, and rollbacks on your own box, one container per app, no per-seat or per-bandwidth surprise.
- Odoo / SAP B1 → Go ERP modules. Inventory, purchasing, and finance in a monolith you own; Postgres underneath, no per-user licence cliff.
- Notion / Confluence → CAMark. Markdown knowledge graph in your own files, indexable by your own AI agents.
- Tailscale coordination → Tailscale mesh. Keep it. Flat WireGuard networks between laptop, VPS, and office machines are one of the few subscriptions that still earn their price.
Migration order that avoids disaster
- Export first, cancel second. Every tool has an export path; find it before you touch billing.
- Read-only cutover. Point the new system at a copy of the data and run it in parallel for a week.
- Move writes last. Only switch the source of truth once the read-only copy has proven it survives a restart and a restore.
- Keep the old account for 30 days on the cheapest plan, then cancel. This is cheap insurance, not indecision.
Day 7: Lock the gains so they stay locked
- Cancel in writing and screenshot the confirmation. Email evidence beats memory.
- Set a billing alert at 100% and 120% of your new monthly infrastructure budget.
- Set a calendar review 90 days out. Subscriptions regrow the moment you are busy.
- Document the new stack in one page: what runs where, how to restore, who to call (you).
- Bank the difference. Move the saved amount to a separate account the day it would have been charged, otherwise the runway gain is imaginary.
What self-hosting actually costs — honest TCO
Be skeptical of "replace $400/month of SaaS with $6 of VPS". The real ledger:
- Server: $6–20/month for a competent box; add $2–5 for offsite backup storage.
- Migration: 8–20 hours once, spread over a month. Price that against 12 months of the subscription, not one month.
- Maintenance: 1–3 hours/month for updates, backups, and certificate renewals. Automate it or it becomes 6 hours.
- Risk: you are now the on-call. Mitigate with offsite backups, a restore drill every quarter, and monitoring that actually reaches your phone.
Rule of thumb: self-host when the annual subscription is more than 10× the annual server cost and the tool is used weekly. Below that, consolidation and downgrades usually beat migration.
Traps that eat the savings
- Migrating everything at once. Change one system per week. Two parallel migrations is how weekend projects become outages.
- Self-hosting without offsite backups. One disk failure turns a $29/month saving into a total loss.
- Keeping a "backup" SaaS subscription indefinitely. Set the cancellation date at migration time, not later.
- Optimizing tools while ignoring the biggest line item. Cloud egress, LLM API spend, and unused database replicas often dwarf every SaaS subscription combined.
The 90-minute version
If 7 days is too much: export 3 months of card statements, list only recurring charges above $10/month, mark anything unused for 45 days, cancel those today, and put the rest on a 90-day review. That single pass typically removes the obvious 20–30% without any migration work at all.
Bottom line
DevOps efficiency for a solo founder is not about having fewer tools. It is about owning the layers that are commodity — terminal, deploy, monitoring, alerts, docs, ERP — and paying only for the layers where someone else's on-call is genuinely worth the money. Run the audit once, keep the ledger, review quarterly. The stack you can explain in one page is the stack you can afford to keep.