Ship a Postgres-Backed SaaS Under $5/Month in 2026
Database, auth, hosting, and a real domain for a serious side project. The cheap stack that actually works.
- STEP 1
Use Supabase free tier for Postgres + Auth
Supabase free gives 500 MB Postgres + 50,000 monthly active users on Auth + 5 GB egress. The two limits to plan around: the 7-day inactivity pause (mitigate with a daily cron ping), and the 5 GB egress (serve any media from Cloudflare R2 instead). Supabase is open source, so if you outgrow free tier, self-hosting on a $5 Hetzner VPS is a real escape hatch.
- STEP 2
Host the frontend on Cloudflare Pages
Unlimited bandwidth + 500 builds/month + 100K Worker requests/day for free is the most generous frontend tier you can get. SSR with Next.js works for static + RSC pages; for fully dynamic API routes, point your fetch calls at a separate Worker or at Supabase Edge Functions. The 500 builds/month is the constraint , deploy locally via cf-deploy.mjs or Direct Upload API to bypass it for high-frequency repos.
- STEP 3
Add a $5 Hetzner box for any always-on workers
If you need a long-running process , webhook receiver, background job runner, websocket server , none of the free tiers handle this well. Render free spins down. Supabase Edge Functions time out. Cloudflare Workers max out at 30 seconds. A $5 Hetzner CX22 (2 vCPU, 4 GB RAM) gives you an always-on Linux box for less than the cost of a coffee. Run your worker as a systemd service and forget about it.
- STEP 4
Domain at $9/year, total monthly under $5
Cloudflare Registrar sells .com domains at cost ($9.77/year as of 2026), no upsells, no renewal price hike. That is $0.81/month spread out. Add to that the optional $5 Hetzner box if you need it, and you have a real production stack , auth, database, hosting, custom domain, optional always-on worker , under $6/month total. The Vercel Pro alternative starts at $20.