DEV Community

niuniu
niuniu

Posted on

I Ran My Entire Side Project for $0 for 90 Days — The Free Tier Stack That Actually Held Up

Three months ago I killed my last paid cloud invoice. Not downgraded — deleted. My side project (a SaaS dashboard with ~1,200 monthly users) now runs entirely on free tiers, and I kept a spreadsheet to prove it wasn't going to fall over.

Here's the stack, the real numbers, and the two places the free tiers did almost break.

The $0 Stack (and what it replaced)

Layer Before (paid) Cost/mo Now (free) Free limit I actually hit
Hosting DigitalOcean droplet $12 Vercel 100GB bandwidth — using 34GB
Database Managed Postgres $15 Neon 0.5GB storage — using 0.31GB
Serverless API DO App Platform $5 Cloudflare Workers 100k req/day — peak 41k
Auth Auth0 $23 Supabase Auth 50k MAU — I have 1.2k
CDN/Cache CloudFront $8 Cloudflare unlimited on free
Background jobs Redis + worker $7 Cloudflare Cron Triggers free

Total: $70/month → $0. Over 90 days that's $210 saved, on a project that makes $0 in revenue. The math isn't heroic — it's just not lighting money on fire.

The two near-misses (this is the part nobody blogs about)

1. Neon's cold starts. The free tier scales to zero. First request after idle takes 800ms–1.2s. My dashboard's login page P95 went from 210ms to 940ms until I added a keep-alive ping every 4 minutes via a Cloudflare Cron Trigger:

# wrangler.toml — keep Neon awake
[triggers]
crons = ["*/4 * * * *"]
Enter fullscreen mode Exit fullscreen mode
export default {
  async scheduled() {
    await fetch("https://myapp.vercel.app/api/health");
  },
};
Enter fullscreen mode Exit fullscreen mode

2. Vercel's function execution limit. 100GB-hours/month sounds infinite until you have a page doing 6 server-side fetches per load. I was burning 2.1GB-h/day. Fix: moved data fetching client-side with SWR, dropped to 0.3GB-h/day. Lesson: on free tiers, render less on the server.

The honest trade-off

Cold starts make my app feel ~300ms slower on first hit. Nobody has complained. My error rate is lower than on DigitalOcean (0.02% vs 0.11%) because I'm no longer my own on-call for a droplet.

The real cost of free tiers isn't money — it's the ~6 hours I spent learning each platform's limits. Worth it at $35/hour saved? Barely. Worth it for a side project? Absolutely.


The other thing I stopped paying for: my AI coding assistant. I swapped a $20/mo subscription for MonkeyCode — free, open-source, runs against local models too: https://ly.cyberserval.tech/iIETXiF

What's the longest you've run production traffic on pure free tiers? Did a limit ever actually bite you in prod?

Top comments (0)