Verdict up front: A SaaS at €0 ARR should cost €0 to host. A SaaS at €50k ARR should cost €200-500/month total (under 1% of revenue). If your infra bill is over 5% of ARR, you're either over-engineered or paying for tools you don't need. The stack matters less than picking it deliberately.
Stage 0: Hobby (€0 ARR, validating)
You haven't launched. You have 50 beta users. You're paying out of pocket.
Stack:
- Frontend: Cloudflare Pages free (unlimited bandwidth, 500 builds/month)
- Backend / DB: Supabase free (500MB DB, 50k MAU, 1GB storage)
- Auth: Supabase Auth (included)
- Email: Resend free (100 emails/day) or Postmark trial
- Domain: €12/year
- Monitoring: Cloudflare Analytics (free), Sentry free tier (5k errors/month)
- Payment: Stripe (free until you start charging)
Total monthly: €0 (domain amortised: €1/month)
Limits: 50k MAU, 500MB data, 100GB bandwidth. You can stay here for months.
Stage 1: Early (€0-€2k MRR, ~500 users)
You've launched. You have paying customers. You need slightly more reliability.
Stack:
- Frontend: Cloudflare Pages free (still works)
- Backend / DB: Supabase Pro €25/month (8GB DB, 100k MAU, daily backups, 7-day point-in-time recovery)
- Background jobs: Cloudflare Workers Cron (free up to 100k invocations/day)
- Email: Resend €20/month (50k emails) or Postmark €15/month (10k emails)
- Transactional logs: Cloudflare Workers Logs (€5/month Workers Paid plan)
- Monitoring: Sentry Team €26/month (50k errors)
- Uptime monitoring: Better Stack free (10 monitors)
- Status page: Better Stack free
Total monthly: €75-€90
Limits: 100k MAU, 8GB DB, plenty of bandwidth. Good for €0-€10k MRR.
Stage 2: Growth (€2k-€20k MRR, 1k-10k users)
You're past product-market fit. Reliability matters. You're paying for vendor risk reduction.
Stack:
- Frontend: Cloudflare Pages free or Vercel Pro €20/month (if Next.js features critical)
- Backend / DB: Supabase Team €599/month OR self-hosted Postgres on DigitalOcean managed (€60/month for 2GB RAM + replicas)
- Compute: 2-3 DigitalOcean droplets (€60-€150/month) for any heavy/long-running tasks
- Background jobs: Cloudflare Workers Cron + Workers Queues (€5/month)
- Email: Postmark €40-€60/month (50k-100k emails)
- Monitoring: Sentry Team €80/month (200k errors) + Better Stack Team €25/month
- Logs: Better Stack Logs €15/month or Grafana Loki self-hosted
- CDN / DDoS: Cloudflare free still works
- Object storage: Cloudflare R2 (€0.015/GB stored, zero egress) €5-€20/month
Total monthly: €300-€800 depending on choices
This range covers most SaaS until €20k MRR. Stay flat-pricing as long as possible.
Stage 3: Scale (€20k-€100k MRR, 10k-100k users)
You have engineers. You're optimising for reliability and team productivity.
Stack:
- Frontend: Cloudflare Pages or Vercel Pro (€20-€100/month)
- Backend / DB: Self-hosted Postgres on AWS RDS or managed Aurora (€300-€800/month with multi-AZ)
- Read replicas: +€150-€300/month
- Compute: AWS Fargate or Kubernetes (€500-€2,000/month)
- Background jobs: SQS + Lambda or Sidekiq on dedicated workers (€100-€300/month)
- Cache: Redis on ElastiCache (€50-€200/month) or Upstash serverless
- Search: Meilisearch Cloud €30-€100/month or ElasticSearch managed
- Email: Postmark or SendGrid €100-€300/month (200k-500k emails)
- Monitoring: Sentry Business €200-€500/month + Grafana Cloud Pro €100-€300/month
- Status page: Statuspage.io €30-€100/month
- Object storage: Cloudflare R2 or AWS S3 (€50-€200/month)
Total monthly: €1,500-€5,000
This is 1-3% of €100k MRR — healthy. Past 5% you're over-spending.
Side-by-side: cost as % of ARR at each stage
| Stage | ARR | Monthly infra | % of ARR |
|---|---|---|---|
| Hobby | €0 | €0-€5 | N/A |
| Early | €0-€24k | €75-€90 | ~5% at €1k MRR, <1% at €10k MRR |
| Growth | €24k-€240k | €300-€800 | ~2% at €15k MRR |
| Scale | €240k-€1.2M | €1,500-€5,000 | ~1.5-3% at €50k MRR |
The over-engineering trap
Common mistakes that cost SaaS founders 5-10x more than necessary:
- Kubernetes at €0 MRR: Adds 10x complexity, costs €200+/month vs €25 Supabase. Use only when you have 10+ services to orchestrate.
- AWS at €1k MRR: AWS bill creeps to €500/month for what Cloudflare + Supabase would do at €25/month.
- Multi-region too early: Multi-region adds 3x infra cost and 5x operational complexity. Wait until you have actual users in multiple continents.
- Datadog at €5k MRR: €1,000+/month observability for a €5k MRR SaaS. Use Sentry + free CloudWatch / Cloudflare Analytics.
- Dedicated DBA cluster: Aurora Global + 5 read replicas at €2k/month for an app that gets 50 req/sec. A single €60 droplet handles it.
What scales linearly with users (the dangerous costs)
- Email: Most providers charge per email. 10x users = 10x bill.
- Per-MAU auth (Auth0, Clerk past free): €0.023/MAU adds up at 100k+ users.
- Egress bandwidth: AWS S3 + CloudFront egress at €0.09/GB hurts. Use R2 (zero egress) where possible.
- Datadog hosts: $15/host/month means scale-out gets expensive fast.
What stays flat (the safe costs)
- Cloudflare Pages: Unmetered bandwidth, doesn't care how big you are.
- Supabase Pro €25 flat: Then €599 flat for Team. Two big steps, but predictable.
- Self-hosted Postgres: Same droplet handles 100 or 10,000 users until you actually hit resource limits.
- Cloudflare R2 storage: Cheap storage, zero egress fees.
Our actual stack for techconcepts.org
- Cloudflare Pages (frontend): €0/month
- ~250GB/month bandwidth: €0/month
- Cloudflare Workers (forms, edge logic): €5/month Workers Paid
- Web3Forms (newsletter / contact form): free
- Google Analytics + Cloudflare Analytics: €0/month
- Domain: €1/month amortised
- Total: €6/month
Site serves 30k+ visitors/month, 300+ pages, zero downtime in 18 months. The cheap stack is real.
Infrastructure costs growing faster than revenue?
We audit SaaS infrastructure and find 40-60% savings without losing functionality. Free 20-minute review of your current stack.
Book a discovery call