Pillar essay
Self-hosted vs SaaS: a real cost-and-tradeoff analysis
This is the question every operator asks once their Notion bill crosses $100/month or their Datadog invoice clears four figures. The honest answer requires real numbers, not vibes. Below: cost data from 10,978 open-source projects compared to 57 paid SaaS, plus the tradeoffs the cost numbers don't capture.
The cost reality, in one sentence
Across the 37 SaaS-to-OSS pairs we maintain, the average annual savings from self-hosting on a Hetzner or Linode VPS is approximately $1,840 per replaced seat. The cheapest qualifying VPS for a typical OSS app averages just $4.13/mo, while the SaaS it replaces typically charges $10-50/user/mo.
That math is real. The catch is everything around the math.
Where SaaS still wins (be honest)
SaaS is paying for three things you don't get with self-hosting: uptime guarantees, support staff, and your time back.
- If you have one user. Most SaaS have a free tier for solo use. Self-hosting introduces a server, a domain, backups, and an upgrade path. For a single user replacing a free SaaS tier, the math doesn't favor the move.
- If your team is 1-3 people and you bill by the hour. Three users on Notion is $36/mo. A self-hosted Outline + Hetzner CX22 is €4.51/mo, but the 3-hour initial setup at $100/hr billable is $300 of opportunity cost. Break-even = 8 months. Worth it for a long-running workspace, not for a 6-week project.
- If the SaaS provides network effects. Slack lets you share channels with vendors. Calendly lets external clients book without an account. Self-hosted equivalents work great for internal use but lose the cross-organization layer.
- If you're in a regulated industry without an in-house ops team. SOC 2, HIPAA, FedRAMP. SaaS vendors carry the audit burden. You can self-host compliantly, but it costs you the audit time.
Where self-hosting wins decisively
- Above 10 users. Per-seat SaaS pricing scales linearly. Self-hosting cost barely moves until you exceed the VPS's RAM/CPU. A 50-person team on Mattermost vs Slack saves $5,000-$8,000/year before you even count storage.
- Storage-heavy workloads. Dropbox, Notion, Airtable all charge per gigabyte once you exceed their free tier. Hetzner's storage boxes are $5/mo per terabyte. The break-even for cloud storage is roughly 50GB.
- API-metered services. Datadog's per-host fees, Sentry's event quotas, Twilio's per-message charges. Self-hosted Grafana/OpenObserve, self-hosted Sentry server, self-hosted Postal. Per-event cost goes from $0.001 to $0.
- Privacy-sensitive workloads. Analytics that pre-GDPR cookie banners (Plausible, Umami). Document storage where you don't want a third party. Code that doesn't leave your perimeter.
- Anything that crosses an Enterprise tier paywall. SSO, audit logs, custom branding, longer history retention. SaaS vendors gate these behind 5x-10x price jumps. Self-hosted: included.
The "your time" question, quantified
The most-cited self-hosting objection is "I don't want to be the IT guy." Fair. Here's a realistic time budget per service:
- Initial setup with Docker Compose: 1-3 hours. Most ossreplace project pages have a derived
docker-compose.ymlat/docker-compose/[slug]/. - Initial setup with Coolify or Dokploy (a self-hosted PaaS layer that gives you a Heroku-like UI): 30-60 minutes to set up Coolify itself, then ~5 minutes per service.
- Routine monthly maintenance: 15-30 minutes per service. Mostly: docker pull && docker compose up -d, watch logs, snapshot.
- Disaster recovery test: 2 hours, once. Restore from backup. Verify it works. Now you're done worrying.
The decision framework, simplified
Below is the rule we use to decide which side of the line a given workload falls on:
- Count seats. Below 5: SaaS usually wins (free tier or low entry tier eats the cost gap). 5-15: depends. Above 15: self-hosting almost always wins.
- Count gigabytes / events / API calls. If usage scales with a metric the SaaS bills against, self-hosting wins faster than seat count alone suggests.
- Look at the SaaS's enterprise paywall. If you need SSO, audit logs, or 2-year history, the entry tier doesn't apply, you're paying enterprise. That's where self-hosting is 10x cheaper.
- Count your team's hourly rate. Multiply (1.5 hr setup + 0.5 hr/month for 24 months) by their hourly rate. Add that to the VPS cost. Compare to the SaaS total.
Run that framework on your specific stack. Most teams find the break-even is shorter than they expected.
Browse the data yourself
Every paid SaaS we track has a dedicated alternatives page with the cost math worked out:
Or pick the use case directly: browse by category. Every page has the multi-provider VPS cost table baked in, refreshed every 30 minutes.
The verdict
For a solo user replacing a free SaaS tier: pay the SaaS, your time is worth more. For a 3-person team on a $30/seat tool: the math is close, decide on values. For a 10+ person team or a workload that scales by storage / events / API calls: self-host. The savings compound, the data ownership is yours, and the tools available in 2026 (Coolify, Dokploy, Caddy, Vaultwarden) make the operational burden a fraction of what it was five years ago.
Pick a SaaS to replace from the list above, or browse the full alternatives directory.