How to estimate hosting costs for a side-project SaaS
Five cost categories that show up on every founder's first cloud bill — and which ones you almost certainly underestimate.
Most founders shipping their first SaaS underestimate year-one hosting cost by 2-3x. Not because cloud bills are mysterious — they're not — but because the categories that bite hardest are the ones nobody remembers to budget for. This page walks through all five, in the order they typically show up in your AWS or Vercel bill.
1. Compute — and why “serverless is free” isn't
STUB: the section on compute. Explain reserved vs on-demand vs serverless, the always-on baseline costs (one t4g.small + one RDS instance is already ~$30/month before you write a line of code), and the per-invocation maths on Vercel/Cloudflare Workers/Lambda. Note where founders confuse "free tier" with "production-ready."
2. Storage — the category that quietly compounds
STUB: S3, R2, Postgres storage. Why backup retention adds up. Why a 5GB database becomes a 20GB database in 6 months without anyone noticing. Practical: $0.023/GB/month for S3 standard storage feels small until you do the year × 12 × hot-and-cold-and-archive math.
3. Egress — the line item that surprises everyone
STUB: data transfer out. Why this is where AWS bills get scary. What CDN does and doesn't fix. The R2 / B2 / Bunny egress-free story. A real-world example: serving 50,000 unique users 2MB each from AWS = ~$9 in egress, which seems fine until you realize that's per region.
4. Observability — the “I'll add it later” tax
STUB: Datadog / Sentry / LogRocket / OpenTelemetry. What you can actually skip (most of it, at first). What you can't (error tracking + uptime). The honest cost: $50-150/month for a real-but- restrained observability stack on a side project.
5. Ops — the category most founders forget exists
STUB: domains, email deliverability, status page, secrets management, CI minutes, container registries. Each one is small; together they're $80-200/month and they show up at the worst time (when you're launching).
Where these numbers get baked into the calculator
STUB: tie back to /calc. Walk through which inputs map to which category, what assumptions the calculator makes, and how to override them when your situation is different.