How to host a SaaS cheaply: real stacks for $0–5 a month
Updated 2026-10-30 · 7 min read
You can host a SaaS cheaply, often for $0–5 a month, if you choose the parts carefully. This guide lists the free tiers and cheap paid plans that matter for a small app, with example stacks and their monthly cost. Every price was checked on the provider's official page as of October 2026. Hosting prices moved a lot in 2026, so check the links before you commit.
Three changes in 2026 matter most:
- Vercel's free Hobby plan is for non-commercial use only. Taking payments counts as commercial.
- Netlify's free plan is now credit-based. When the 300 monthly credits run out, your sites are paused until the next month.
- Hetzner raised cloud prices twice. Its smallest servers now cost about €6 a month with an IPv4 address.
Frontend and serverless
| Service | Free tier | Cheapest paid | Watch out for |
|---|---|---|---|
| Cloudflare Pages | 500 builds a month, no listed bandwidth limit | — | 20,000 files per site |
| Cloudflare Workers | 100,000 requests a day, 10 ms CPU per request | $5/mo for 10M requests | Free CPU limit is tight for heavy work |
| Vercel | Hobby: 100 GB transfer, 1M function calls | Pro $20/mo | Hobby is non-commercial only |
| Netlify | 300 credits a month | Personal $9/mo | Sites pause when credits run out |
| Render | Free web services, 750 hours a month | Starter $7/mo (not verified) | Spins down after 15 minutes idle; about 1 minute to wake |
| Railway | $5 trial credit, then $1/mo of usage | Hobby $5/mo including $5 of usage | Usage-based beyond the included amount |
| Fly.io | No free tier for new accounts | About $2/mo for a 256 MB machine | Dedicated IPv4 is $2/mo extra |
For a paid product, Cloudflare Pages plus Workers is the strongest free option in October 2026. You can stay at $0 for a long time, and the $5 Workers Paid plan adds a lot of headroom, including D1 database and email sending quotas.
Vercel is excellent for Next.js, but plan on Pro at $20 a month once you take money. Under Vercel's fair-use guidelines, commercial use includes taking payments and advertising a product.
A small VPS
A virtual private server runs your whole app: web server, background jobs and SQLite or Postgres. It needs more setup and you maintain it, but the cost is flat and predictable.
| Provider | Cheapest plan | Specs | Price |
|---|---|---|---|
| DigitalOcean | Basic Droplet | 1 vCPU, 512 MB, 10 GB, 500 GB transfer | $4/mo |
| OVHcloud | VPS-1 | 2 vCores, 4 GB, 40 GB NVMe | from $4.54/mo |
| Akamai (Linode) | Nanode 1 GB | 1 vCPU, 1 GB, 25 GB, 1 TB transfer | $5/mo |
| Hetzner Cloud | CX23 | 2 vCPU, 4 GB, 40 GB, 20 TB transfer (EU) | about €5.99/mo with IPv4 |
| Vultr | Regular cloud | 1 vCPU, 1 GB | reported $5/mo (not verified) |
| Oracle Cloud Always Free | Arm A1 | 2 OCPU, 12 GB total | $0 |
Notes:
- Hetzner still gives the most memory per euro, but its June 2026 price change pushed the smallest servers above €5. When we checked, its cost-optimized plans were marked "currently unavailable" in some locations.
- OVHcloud VPS-1 at about $4.54 is the cheapest 4 GB server we found.
- Oracle Always Free costs nothing but reclaims idle machines, and new instances often fail with "out of capacity" errors. Fine for a side project, risky for paying customers.
- 512 MB is enough for a Go, Rust or small Node app with SQLite. Add a swap file. It is not enough for a heavy Next.js server build.
Databases
| Option | Free tier | Cheapest paid | Note |
|---|---|---|---|
| SQLite on your VPS | $0 | — | Back it up with Litestream to object storage |
| Cloudflare D1 | 5M rows read a day, 5 GB total | Included in Workers $5 | SQLite-based, works with Workers |
| Turso | 100 databases, 5 GB | Developer $4.99/mo | SQLite-compatible |
| Neon | 1 GB per project, scales to zero | Pay as you go, no minimum | Postgres, wakes on first query |
| Supabase | 500 MB, 2 projects | Pro $25/mo | Free projects pause after a week of inactivity |
| Prisma Postgres | 200,000 operations a month | Starter $10/mo | Usage counted per operation |
For a $1–5 product, SQLite is often the right answer. It needs no separate server, it is fast for a single-region app, and Litestream streams every change to cheap storage for a few cents a month.
If you want managed Postgres, Neon's free tier handles a small app well. Expect a short delay on the first query after idle. Supabase is good, but a paused free project is a real outage for paying users, and the next step is $25 a month.
Email sending
| Service | Free | Cheapest paid |
|---|---|---|
| Amazon SES | No permanent free tier | $0.10 per 1,000 emails |
| Resend | 3,000 a month, 100 a day | Pro $20/mo for 50,000 |
| Cloudflare Email Sending (beta) | Not on the free plan | 3,000 a month included in Workers $5, then $0.35 per 1,000 |
| Postmark | 100 a month | $15/mo for 10,000 |
| Mailgun | 100 a day | $15/mo for 10,000 |
| Brevo | 300 a day | about $9/mo (not verified) |
For sign-in codes and receipts, Resend's free tier covers most new apps. Watch the 100-a-day cap: a launch day can pass it. Amazon SES is the cheapest at volume, at about $1 for 10,000 emails.
For receiving mail at your domain, Cloudflare Email Routing forwards inbound email for free.
Object storage
| Service | Free | Price | Egress |
|---|---|---|---|
| Cloudflare R2 | 10 GB a month | $0.015/GB-month | Free |
| Backblaze B2 | First 10 GB | $6.95/TB-month | Free up to 3× stored data |
| Hetzner Object Storage | — | €6.49/mo base, includes 1 TB | 1 TB included |
| Amazon S3 | 100 GB egress pooled across AWS | about $0.023/GB-month | about $0.09/GB |
R2 is the default for small apps: 10 GB free and no egress fees. Hetzner's €6.49 base fee is charged as long as any bucket exists, even an empty one.
Auth
- Better Auth is open source and free to self-host.
- Supabase Auth includes 50,000 monthly active users on the free plan.
- Clerk is free up to 50,000 retained users per app, but MFA, passkeys and removing Clerk branding need Pro at $25 a month.
Example stacks with monthly cost
Prices as of October 2026. A domain adds roughly $10–11 a year at Cloudflare Registrar, which sells at cost. The exact .com price was not listed on Cloudflare's page.
Stack 1: $0 a month, all on Cloudflare
| Part | Choice | Cost |
|---|---|---|
| Frontend | Cloudflare Pages | $0 |
| API | Workers free | $0 |
| Database | D1 free | $0 |
| Resend free | $0 | |
| Storage | R2 free | $0 |
| Total | $0 |
Good for: a launch with up to a few thousand users. Limit to watch: 100,000 Worker requests a day.
Stack 2: $5 a month, Cloudflare paid
The same stack on Workers Paid. You get 10M requests, larger D1 quotas and 3,000 emails a month for $5 flat.
Stack 3: $4–6 a month, one VPS
| Part | Choice | Cost |
|---|---|---|
| Server | DigitalOcean $4, or OVHcloud VPS-1 | $4–4.54 |
| Database | SQLite + Litestream to R2 | $0 |
| Amazon SES | under $1 | |
| Monitoring | A free uptime checker | $0 |
| Total | about $4–6 |
Good for: long-running jobs, websockets, or any language. You handle updates, firewall and backups.
Stack 4: about $0 with managed Postgres
Cloudflare Pages for the frontend, a small API on Workers, Neon free for Postgres, Resend free for email. Total $0, with Neon's cold start as the trade-off.
When to move off free tiers
Move to a paid plan when one of these is true:
- You take money on a plan that forbids it. Vercel Hobby is the obvious case.
- A pause or spin-down would hit paying users. Supabase pauses idle free projects, Netlify pauses at the credit limit, and Render spins down after 15 minutes.
- You are above 70% of a hard limit on any normal day. Launch days can triple traffic.
- You have no backups. Render's free Postgres has none and is deleted after 30 days. A paid plan or your own backups fixes this.
- Hosting costs more than 10% of revenue. At that point a VPS is usually cheaper than stacking managed services.
Fees on the money coming in matter as much as hosting. See Payment fees on $1–5 subscriptions and How to price a SaaS at $1–5 a month.
What could not be verified
- Vultr's pricing page blocked our requests. The $5 figure is from third-party sources.
- Render's and Brevo's paid prices come from their own pages but did not render fully.
- AWS S3 storage and egress rates are from AWS documentation, not the live price table.
- Hetzner's "unavailable" labels may be temporary.
List your app
If your app costs $5 a month or less to start, you can list it on One Dollar SaaS for free.