The Economics of Self-Hosting: When Does DIY Beat Cloud Subscriptions?
We earn commissions when you shop through the links on this page, at no additional cost to you. Learn more.
I spent years throwing $50–$200 a month at SaaS subscriptions before I actually did the math. Nextcloud, Vaultwarden, Jellyfin, Immich, Uptime Kuma—once I self-hosted these instead of relying on cloud alternatives, the spreadsheet looked very different. But here's what most people get wrong: self-hosting isn't always cheaper. It's only cheaper if you do the accounting correctly.
In this post, I'll walk through real cost breakdowns, show you the exact break-even points for common applications, and explain why some services should stay in the cloud while others absolutely belong on your own hardware.
The Hidden Costs Nobody Talks About
When you decide to self-host, people obsess over server costs and electricity. Those are real, but they're not the whole picture. I learned this the hard way.
The three biggest hidden costs are:
- Your time. Setting up Nextcloud from scratch, configuring SSL, managing updates, debugging network issues—this isn't free. I value my time at roughly $50/hour. A three-hour initial setup plus 30 minutes per month for maintenance adds up.
- Backup infrastructure. You can't just run Jellyfin or Immich without backups. That means external drives, a second location, or cloud storage for disaster recovery. I spend $100/year on Backblaze B2 for my personal data.
- Electricity and network. A NAS or always-on server at home costs about 15–30 watts continuously. At $0.12 per kWh (US average), that's roughly $13–$26 per year. But you also need decent upload bandwidth if you access things remotely—gigabit fiber at $80/month is common in my area.
Real-World Cost Comparison: Nextcloud vs Dropbox
Nextcloud is my favorite comparison case because the alternatives are expensive and well-known.
Dropbox Pro: $180/year for 2TB. If you need 5TB, that's $360/year. Need 12TB? You're paying $720/year.
Self-hosted Nextcloud on a VPS: Let me break this down with what I actually run.
# My current Nextcloud setup on a $60/year RackNerd VPS
# RackNerd New Year deals currently offer VPS around $40/year
# See: https://www.racknerd.com/NewYear/
# Basic specs:
# - 2 vCPU, 2GB RAM, 40GB SSD
# - Unmetered bandwidth (key advantage)
# Annual costs:
VPS=40 # RackNerd promotional pricing
Backup=100 # Backblaze B2 or Wasabi for off-site backups
Domain=12 # .com domain with privacy
SSL=0 # Let's Encrypt is free
Time=50 # ~1 hour per month at $50/hr, mostly updates
Total=$202/year
# For 5TB of storage on Dropbox: $360/year
# Self-hosted Nextcloud with $202/year beats Dropbox
# For 2TB: Dropbox is $180/year
# Break-even is around 18 months if you count time investment
Now here's what changed my thinking: with a cheap VPS, you get unlimited bandwidth. Dropbox charges overages. I sync my Immich photo library (200GB) to my server monthly—that alone would cost $50+ per month on a cloud service with egress fees.
The math tips heavily toward self-hosting once you exceed 2TB or need high-bandwidth access.
Vaultwarden vs Bitwarden Premium: Where DIY Wins Decisively
Password management is an area where self-hosting creates enormous value.
Bitwarden Premium: $10/month ($120/year) for one user, features like TOTP storage and priority support.
Vaultwarden self-hosted: Free software, runs in Docker, costs almost nothing to operate beyond your VPS.
# Deploy Vaultwarden on the same $40/year VPS
# Docker Compose snippet:
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
ports:
- "80:80"
- "443:443"
environment:
DOMAIN: https://vault.yourdom.com
SIGNUPS_ALLOWED: "false"
INVITATIONS_ORG_INVITES_ALLOWED: "false"
SHOW_PASSWORD_HINT: "false"
LOG_LEVEL: warn
volumes:
- ./vw-data:/data
- ./ssl:/ssl
# Annual incremental cost beyond base VPS: $0
# Bitwarden Premium saves you $120/year vs subscription
# If you have a family: 5 users × $10/month = $600/year
# Vaultwarden still costs $40/year total
# Savings: $560/year
This is the rare case where self-hosting beats cloud decisively. Password managers have zero compliance overhead on your own server, unlimited users, and zero monthly fees once deployed.
The Break-Even Chart I Actually Use
Here's a quick reference for when self-hosting makes financial sense. I update this annually based on current VPS and cloud pricing.
| Application | Cloud Cost (1yr) | Self-Host Cost (1yr) | Break-Even | Verdict |
|---|---|---|---|---|
| Vaultwarden | $120 (Bitwarden) | $40–60 | Immediate | Always DIY |
| Nextcloud (5TB+) | $360+ (Dropbox) | $200–250 | Immediate | Always DIY |
| Jellyfin | $120–180 (Plex+) | $40–100 | 6–8 months | DIY if you have media |
| Immich (photo sync) | $120+ (Google One 2TB) | $100–150 | 12 months | DIY for privacy + value |
| Gitea (private git) | $21/mo GitHub Copilot | $40–60 | 12+ months | Only if you avoid GitHub |
| Uptime Kuma | $50–100 (Uptime Robot) | $40–60 | Immediate | DIY, no-brainer |
| Slack replacement | $8/user/mo (teams) | $40–80 (Mattermost/Rocket.Chat) | 6+ months (team-dependent) | DIY at 5+ users |
| Notion alternative | $10/mo Notion Pro | $40–80 (LogSeq, Joplin) | 12+ months | Cloud wins for single user |
When You Should Stay in the Cloud
I'm not a purist. Self-hosting doesn't always win, and pretending otherwise is dishonest.
Email is still a cloud game. Running your own mail server requires SPF, DKIM, DMARC setup, blacklist management, and constant vigilance against being marked as spam. A managed service like Migadu ($19.90/year for five domains) or Hey ($99/year) handles all this. Self-hosting email is a hobby, not a cost-saving measure.
Single-user productivity apps often stay cheap in the cloud. Notion Pro is $10/month. A self-hosted Joplin server plus VPS costs $40–80/year but requires you to manage the app. If you already have a VPS for other services, Joplin makes sense. If it's your only service, Notion wins.
CI/CD pipelines. GitHub Actions free tier is unbeatable. Self-hosted GitLab or Gitea with CI feels cheaper until you add runner instances and electricity. Unless you need privacy, stay with GitHub.
Analytics. Plausible Analytics costs $20/month but requires zero maintenance. Self-hosted Matomo or Fathom requires Docker, database management, and regular backups. The break-even is years out for most people.
The Real Win: Consolidation and Bulk Discounts
Here's where self-hosting creates real, measurable savings: when you run five or more services together on one system.
One cheap VPS ($40–60/year) can easily run:
- Vaultwarden (passwords)
- Nextcloud (files)
- Immich (photos)
- Jellyfin (media)
- Uptime Kuma (monitoring)
- Gitea (version control)
- Syncthing (sync)
If you bought each service individually in the cloud, you'd pay $800–1,200 per year. On a shared VPS with 2–4GB RAM, you're paying $40–60/year total, plus backups and your time.
That's where the real economics work. Not per-service, but per-stack.
The Calculation Template I Use
Here's my actual spreadsheet logic. Adjust the numbers for your situation and run the math before you deploy.
# Self