The “self-host everything” movement has passionate advocates on both sides. Reality is nuanced. Here’s the framework I use when deciding.

Cost isn’t the main factor

Many self-host advocates lead with cost savings. Usually it’s misleading:

  • SaaS at small scale is often free or cheap ($0-50/mo)
  • Self-hosting on cheap VPS starts around $5/mo
  • But self-hosting eats engineer time — 2-10 hours/month for maintenance
  • At $100/hr engineering time, self-hosting often costs MORE than SaaS

Cost-wise, self-hosting wins when you’re either:

  • Running things at scale where SaaS becomes expensive
  • Doing it as a hobby where your time is effectively free
  • In a regulated environment where SaaS has compliance overhead

When to self-host

Good reasons:

  1. Data sovereignty: Legal or compliance requirements that make certain data unsendable to third parties
  2. Privacy: Your own infrastructure doesn’t train AI models on your data
  3. Customization: Need features or integrations the SaaS doesn’t offer
  4. Learning: Running the stack teaches you how it works
  5. Vendor lock-in fear: Ability to migrate is a real asset

Bad reasons:

  1. “It’s cheaper” — usually isn’t when you count your time
  2. “I don’t trust cloud providers” — but you trust your own patching?
  3. “I can do a better job” — you probably can’t, for most things

When SaaS wins

  1. Rarely-used features: Pagination plugin for your wiki? Use Notion.
  2. High-value per user: Slack for a team is $10/user/mo but the productivity gain is worth it.
  3. Uptime requirements: SaaS providers have 24/7 SRE teams. Your two-person team doesn’t.
  4. Scale uncertainty: If you don’t know whether you’ll have 10 or 10000 users, SaaS scales while you build.

My current stack

Self-hosted:

  • Git (Gitea)
  • CI (Jenkins, small scale)
  • Metrics/logs (Prometheus + Loki)
  • Documentation (MkDocs)
  • This blog

SaaS:

  • Email (Fastmail)
  • Calendar (Google)
  • Code hosting for open source (GitHub)
  • Password manager (1Password)
  • Status page (better-uptime)

The split is roughly: infrastructure tooling self-hosted, productivity tools SaaS.

Hybrid patterns

Some tools work well hybrid:

  • GitHub for public repos, Gitea for private
  • Backups mirrored to both cloud and local storage
  • Email via SaaS but with your own domain (portability)

The migration cost

SaaS-to-self-host migrations take weeks. Self-host-to-SaaS migrations take hours (mostly just export and import).

Factor this asymmetry into decisions. Start with SaaS if uncertain, migrate to self-host once you’ve validated need and scale. Don’t start with self-hosting “to save money” — you’ll spend more migrating when priorities shift.

The boring answer

There isn’t one right answer. It depends on your scale, team size, budget, compliance needs, and personal preference. The people who are very loud on social media about one side usually have a particular context that doesn’t apply to you.