Stack tier explained: managed, serverless, or DIY
Three honest stacks for shipping your first SaaS — what each one costs, what each one breaks under, and how to know which one you're actually building.
Most founder cost advice is silently written for one tier and assumes you're on the same one. That's why two people can read the same Twitter thread about hosting cost, follow the advice, and end up with bills that differ by 10x. The fix is to pick your tier on purpose — early, with the trade-offs in front of you — instead of inheriting one by accident.
Tier 1 — Managed: Vercel + Supabase + Stripe
Who picks this: most solo founders shipping their first SaaS, and every founder who wants to spend zero hours thinking about infrastructure. The pitch is iteration speed — you go from "I have an idea" to "users can pay me" in a weekend without writing a CI config or a Terraform file.
Cost shape: $50-300/month all-in for a real-but-small product. Vercel Pro is $20/seat, Supabase Pro is $25/month, Stripe takes 2.9% + $0.30 per transaction, Postmark is $15/month at 10k emails, and you'll add Sentry at $26/month around the time your first paying customer reports a bug.
What you trade for that speed: vendor lock-in and a few cost cliffs you can see coming. Supabase becomes expensive if your DB hits its noisy-neighbor limits. Vercel charges bandwidth-heavy products by the GB once you cross the Pro inclusions. Both are manageable problems at the size most founders hit them at, but they exist.
When Managed breaks: when a substantial share of your product is serving large files (video, downloads, image-heavy galleries) and your egress bill starts outrunning your storage bill. If you're shipping that kind of product, jump straight to Tier 2.
Tier 2 — Serverless: Cloudflare Workers + D1 + R2
Who picks this: founders who have done a year of dev ops in a past life, and any product whose economics depend on cheap egress. The pitch is unit economics — you'll spend $5-50/month where the same workload on AWS or Vercel would be $200-800.
Cost shape: $5-80/month all-in for the same size product Managed handles at $200. Workers Paid is $5/month for the first 10M requests, R2 has zero egress at $0.015/GB-month storage, and D1 (Cloudflare's SQLite at the edge) is free up to 5M reads / 100k writes per day.
The cost is cognitive: Workers is a different programming model (no long-running processes, no native Postgres until you pay Neon or Supabase for one), and the debugging story still lags AWS / Vercel maturity. Cold starts on cold endpoints are real but small (50-200ms on Workers). You will read more documentation and Google more error messages in the first month than you would on Vercel.
When Serverless wins: when egress matters, when you're shipping a product to a global audience, and when you genuinely like the challenge of working at the edge of a maturing platform. When it loses: when you don't have the appetite for slightly-stranger tooling and want to ship features instead of debugging cold-start timing.
Tier 3 — DIY: a VPS, Postgres, and nginx
Who picks this: founders with real ops experience and a workload that hates serverless (long-running connections, heavy CPU bursts, data-residency requirements, anything where the unit cost of a managed offering becomes a tax on a load pattern you understand better than the vendor does).
Cost shape: $30-150/month for a single Hetzner / DigitalOcean / Vultr box handling everything. For a real product on a beefy $80/month server you get 8 cores, 32GB of RAM, and 6TB of egress included — numbers that look absurd next to AWS pricing. It is, in fact, that absurd.
The tax is uptime. You're now the database administrator, security-patch reviewer, and on-call engineer. The first time the server runs out of disk because of a runaway log file, you'll learn what a 2am alert feels like. Some founders find that bracing and educational. Others find it ruinous.
When DIY wins: predictable load, single-region products, heavy egress workloads, and founders who genuinely enjoy ops. When it loses: anything where availability is a feature and you can't afford to be the one taking the page.
How to know which tier you're actually building
Four diagnostic questions, in priority order:
- What are you optimizing — iteration speed or unit economics? Iteration → Managed. Unit economics → Serverless. Either-or in year one means you don't have product / market fit yet, so prioritize iteration.
- Do you have at least 6 months of real ops experience? Yes → DIY is on the table. No → it is not, no matter how appealing the Hetzner pricing looks.
- Does egress dominate your workload? (Streaming video, large downloads, image-heavy galleries.) Yes → Serverless. No → either of the other two work.
- Will you be on-call for outages? Yes and comfortable → DIY okay. No, or you have a day job → not DIY, full stop.
The migration story (and why most people don't migrate)
Migrating up a tier (DIY → Managed) is straightforward but psychologically hard — you're conceding that you should have bought iteration speed at the start. Migrating down a tier (Managed → DIY) is rare and expensive: by the time you've outgrown Managed pricing, you have customers, an uptime reputation to defend, and a calendar full of customer support. The last thing you want is a six-week ops project.
The practical implication: pick your tier on day one with eyes open, and budget the trade-off you accepted. The calculator bakes a tier choice into the "stack" input — SaaS-US assumes Managed, marketplace assumes the higher-bandwidth Serverless shape, and the high end of each range is where you'd land if you tried to operate the same product on enterprise-shaped tooling without enterprise needs.