The Self-Hosting Cost Calculation: Honest Numbers
The pitch for self-hosting always starts with the server bill. A $5/month Hetzner VPS running ten applications. Per-app cost: fifty cents. Meanwhile, those same ten apps on managed platforms would cost $100-300/month. The math looks like a cheat code. But the math is incomplete — it counts server costs and ignores everything else. The honest cost calculation includes time, learning curve, downtime risk, backup infrastructure, and the opportunity cost of doing ops work instead of whatever else you'd be doing. Here's the full spreadsheet, with nothing hidden.
The Server Costs
The raw compute cost of self-hosting is genuinely cheap. A Hetzner CX22 — 2 vCPUs, 4GB RAM, 40GB disk — costs about $5/month. [VERIFY: current Hetzner CX22 pricing — previously listed around €4.15/month.] For lightweight applications — a Ghost blog, a Miniflux RSS reader, a Linkding bookmarks instance, an Uptime Kuma monitoring dashboard, a small PostgreSQL database — this single server handles five to ten services without breaking a sweat. Most self-hosted applications are idle most of the time. They sit in memory waiting for HTTP requests that come a few times per hour, not a few times per second.
Step up to a CX32 (3 vCPUs, 8GB RAM, 80GB disk) at roughly $8-10/month [VERIFY: current Hetzner CX32 pricing] and you can comfortably run 10-15 applications, including a few that actually do real work — a Coolify PaaS instance, multiple databases, a media processing service. The ARM-based CAX line is even cheaper for the same specs, assuming your software supports ARM. Most Docker images do at this point, but not all.
The per-app cost at these prices is remarkable. Ten apps on a $5 VPS: fifty cents each per month. Fifteen apps on a $10 VPS: sixty-seven cents each. On Vercel, a single Pro project is $20/month. On Railway, a modest app with a database runs $5-15/month. On Render, a background worker is $7/month. The raw compute economics of self-hosting are not close — they're an order of magnitude cheaper.
But raw compute is not the total cost. It's not even most of the total cost.
The Hidden Costs
Server bills are the line item you see. Here are the ones you don't.
Domain renewals. Every self-hosted service needs a domain or subdomain. If you're running everything under one domain with subdomains (app.yourdomain.com, git.yourdomain.com), the cost is just the one domain — $10-15/year for a .com. If you have multiple domains for different projects, each one adds $10-15/year. Not a big number, but it's not zero.
Backup storage. A proper backup strategy — the kind described elsewhere in this series — requires offsite storage. Cloudflare R2's free tier covers 10GB, which handles database dumps and configuration files for most setups. Beyond that, R2 costs $0.015/GB/month and Backblaze B2 costs about $6/TB/month. [VERIFY: current R2 and B2 per-GB pricing.] For a typical self-hoster with modest data, backup storage runs $0-5/month. For someone running Nextcloud with hundreds of gigabytes of files, it's more.
Monitoring. Uptime Kuma is free and self-hosted — you run it on the same VPS. But monitoring your server from the same server is like hiring yourself as your own reference. If the VPS goes down, your monitoring goes down with it. An external monitoring service — Healthchecks.io (free tier), BetterUptime (free for 10 monitors) [VERIFY: BetterUptime current free tier limits], or UptimeRobot (free for 50 monitors) [VERIFY: UptimeRobot current free tier limits] — adds a few dollars per month at most, or nothing if the free tier covers your needs.
Scaling bumps. Sooner or later, you outgrow your server. Maybe you add a resource-heavy application. Maybe traffic spikes on a project. Upgrading a Hetzner VPS is usually painless — a resize in the dashboard, a reboot, and you're on bigger hardware. But the cost jumps. Going from CX22 ($5) to CX32 ($10) doubles your bill. Going to a CX42 (roughly $17/month) [VERIFY: current Hetzner CX42 pricing] more than triples it. The jumps are still cheaper than managed platforms, but "my server bill doubled" is a conversation you'll have with yourself eventually.
Add it up: server ($5-10), backup storage ($0-5), monitoring ($0-5), domains ($1-2/month amortized). The total infrastructure cost for a serious self-hosting setup is $6-22/month. Round it to $10-20/month for a realistic estimate. Still dramatically cheaper than managed alternatives for the same workload. Still not the complete picture.
The Time Cost in Dollars
This is where the calculation gets uncomfortable. Infrastructure costs money. Your time costs more.
The first three months of self-hosting are expensive in hours. If you're starting from scratch — first VPS, first time with Docker, first Coolify deployment — expect to spend 10-20 hours on setup and learning. Some of that is productive setup that only happens once. Some of it is googling error messages, reading documentation, and making mistakes you'll learn from. This is the "tuition" cost of self-hosting, and it's real even if it doesn't show up on a bill.
After the initial setup, ongoing maintenance runs 2-5 hours per month. That's security updates (apt upgrade, Docker image pulls), checking that backups are running, reviewing logs for anomalies, debugging the occasional service that stopped working, and dealing with the upgrade that broke something. Most months lean toward the low end. The month something actually breaks — a Coolify update that changes configuration format, a disk that's quietly filling up, a service that starts crashing after a dependency update — you spend a Saturday afternoon fixing it.
Now price that time. If your time is worth $30/hour — a conservative estimate for someone with the technical skills to self-host — the first three months cost $300-600 in time, and ongoing maintenance costs $60-150/month. If your time is worth $75/hour, those numbers are $750-1,500 upfront and $150-375/month ongoing. At $75/hour, the ongoing time cost alone — $150-375/month — exceeds what you'd pay for managed platforms hosting the same workload.
This is the number that self-hosting advocates don't like to talk about. The $5/month server is real. The 3 hours/month at $75/hour is also real. The total cost is $230/month, not $5/month. Managed platforms charging $100-200/month for the same workload suddenly don't look so expensive.
Three Profiles, Calculated Honestly
The math changes at different scales and for different people. Here are three realistic profiles.
Profile 1: The hobbyist. Running a personal blog (Ghost), a bookmarks manager (Linkding), and a feed reader (Miniflux). Modest traffic, no uptime requirements, the only user is them. Server cost: $5/month. Backup storage: $0 (R2 free tier). Monitoring: $0 (Uptime Kuma on the same VPS is fine here — there's no SLA to meet). Time: 1-2 hours/month after initial setup. The managed alternative: Ghost Pro ($9/month), no equivalent for Linkding and Miniflux without additional subscriptions. Self-hosting wins on raw cost — $5 vs. $9+ — but the time cost erases the savings unless you value the learning. Verdict: self-hosting makes sense if you want to learn. It doesn't save meaningful money at this scale.
Profile 2: The developer with side projects. Running 8 applications: a couple of web apps, a couple of APIs, two databases, a monitoring stack, and a deployment dashboard (Coolify). Moderate traffic on some, near-zero on others. Server cost: $10-15/month (CX32 or equivalent). Backup storage: $3-5/month. Monitoring: $0 (free tier external). Total infrastructure: $13-20/month. Time: 3-5 hours/month. The managed alternative: Vercel Pro ($20), Railway for databases and APIs ($30-60), Render for workers ($14-21). Total managed: $64-101/month. Self-hosting saves $44-81/month in infrastructure costs. At $50/hour for the developer's time, maintenance adds $150-250/month — so managed is still cheaper when you count time. But here's where the amortization argument kicks in: the setup and learning from month one through six makes months seven through thirty-six cheaper and faster. By year two, if maintenance is down to 1-2 hours/month, the all-in cost of self-hosting is $60-120/month vs. $64-101/month for managed. It's close. Verdict: self-hosting makes sense if you have the skills or want to build them. The cost advantage is real but modest once you count time.
Profile 3: The small business. Running 12 applications that customers depend on, including e-commerce APIs, a customer-facing dashboard, and production databases. Downtime costs real money — not enterprise money, but "customers notice and email you" money. Server cost: $20-40/month (larger VPS or two servers for redundancy). Backup storage: $5-10/month. Monitoring: $5-10/month (external monitoring with alerting). Total infrastructure: $30-60/month. Time: 5-10 hours/month (more applications means more updates, more potential failures, more monitoring to review). The managed alternative: $200-400/month across Vercel, Railway/Render databases, and managed services. Self-hosting saves $140-340/month in infrastructure. Time cost at $75/hour: $375-750/month. Unless you have ops staff whose job includes server maintenance — in which case the time cost is already in their salary — managed platforms win at this scale. The math only works for self-hosting if you have someone on payroll who handles infrastructure as part of their role. Verdict: managed wins unless you have dedicated ops capacity.
The Break-Even Point
At roughly five applications with modest traffic, self-hosting on a VPS starts beating managed platforms on raw infrastructure cost. That's the break-even point for server bills. It's not the break-even point for total cost.
The total-cost break-even — including time — depends entirely on how you value your hours and how efficient you've gotten at maintenance. For someone who already knows Linux and Docker, ongoing maintenance is minimal and the break-even is around 5-7 applications. For someone learning from scratch, the break-even might be 12-18 months in the future, after the learning investment has amortized and maintenance time has dropped.
The honest version: if you're self-hosting purely to save money and your time has market value, the savings are smaller than the server bill comparison suggests. At low scale (1-3 apps), managed platforms' free tiers are cheaper. At high scale with uptime requirements, managed platforms' reliability is cheaper than your on-call time. The sweet spot — where self-hosting is unambiguously cost-effective — is the 5-15 app range for someone who already has the skills and doesn't mind the occasional maintenance session.
The Real Reason People Self-Host
After running all these numbers, the honest conclusion is that self-hosting is not primarily a financial optimization. The people who stick with self-hosting long-term are not doing it because the spreadsheet told them to. They're doing it because they want to.
They want to understand how the stack works. They want to control their data. They want the privacy of knowing their files, their databases, and their application data live on a machine they control, not on a server owned by a company that can change its terms of service or shut down. They want the satisfaction of running infrastructure that just works — not because someone else made it work, but because they made it work.
This is a legitimate reason. It's not an economic argument, and it shouldn't pretend to be one. The learning that comes from self-hosting — Linux administration, Docker, networking, database management, security, monitoring — compounds over a career. A developer who has self-hosted for two years understands production infrastructure in a way that a developer who only uses Vercel simply doesn't. That understanding has real professional value, even if it's hard to put a dollar figure on it.
The self-hosting cost calculation is honest when it includes everything: the cheap servers, the hidden infrastructure costs, the expensive time, and the intangible value of learning and control. The answer isn't "self-hosting is always cheaper" or "managed is always better." The answer is: know what you're actually paying, in every currency — dollars, hours, risk, and knowledge — and choose the combination that makes sense for your specific situation.
If the spreadsheet says managed is cheaper and you self-host anyway because you enjoy it and learn from it — that's fine. Hobbies cost money. Just don't tell yourself it's a financial decision when it's really a values decision. The honesty is the point.
This is part of CustomClanker's Self-Hosting series — the honest cost of running it yourself.