What free hosting actually gets you (and where it ends)
Right now I have two live products with real users — a 12-game arcade and a standalone snake game — and my monthly infrastructure bill is zero rupees. Not "zero after credits", not "zero for the first year". Actually zero. People starting out often assume real products need real servers and real money. They don't, up to a point. This post is about exactly where that point is.
The stack that costs nothing
Vercel Hobby tier hosts both apps. Push to GitHub, it builds and deploys automatically, gives you HTTPS, a global CDN, and serverless functions for the API routes. For a hobby project the limits are genuinely hard to hit — my games are canvas-based and tiny, so bandwidth barely moves.
Upstash Redis is the entire database. Accounts,
sessions, leaderboards, rate-limit counters — all of it is Redis keys,
accessed over HTTPS from serverless functions. The free tier gives you a
daily command quota that two small games don't come close to exhausting.
One trick I use: both of my apps share a single Redis database with
namespaced keys (arcade:* for one, snakefree:* for
the other, shared user:* records for the common account system).
One free database, two products, one login that works on both sites.
GitHub for code, Vercel Analytics free tier for traffic numbers. That's the whole company.
What "free" quietly assumes
The free tiers work because my workload fits their shape. It's worth understanding that shape:
- Serverless means stateless. No websockets, no long-running processes, nothing held in memory between requests. Every request has to reconstruct its world from the cookie and Redis. My games run entirely client-side and only talk to the server at start and end of a run — that's why this works.
- Redis-as-only-database means designing for keys, not queries. There's no "show me all users who signed up this week" unless you built an index for it yourself. For leaderboards, Redis sorted sets are honestly better than SQL. For anything analytical, you'll miss real tables.
- Cold starts are real but for a game where the API is only called twice per session, nobody notices.
Where the free ride ends
Three walls, and I've now personally met all of them:
1. Commercial use. Vercel's Hobby tier is for non-commercial projects. The moment you want to put ads on your site or charge users, you're supposed to be on Pro ($20/month). This is the first real bill any project like mine pays.
2. Custom domains for monetisation. Free subdomains like
yourapp.vercel.app are fine for players, but ad networks like
AdSense won't approve a site on someone else's subdomain. A real domain is
cheap (this one was around the price of a pizza) but it's a cost, and it's
the reason this site lives at mirofish0x.online instead of a vercel.app
address.
3. Support and guarantees. Free tiers come with no SLA. If Upstash has a bad day, my leaderboards have a bad day, and nobody owes me an explanation. For free games this is a fair trade. For anything people pay for, it isn't.
My honest advice
If you're building your first web product: the infrastructure excuse is dead. Free tiers will carry you all the way to real users — my players signed up, played, and competed on leaderboards before I'd spent a single rupee on servers. The bottleneck was never hosting. It's distribution: getting anyone to know your thing exists. That part, no free tier solves.