People assume shipping a website or an app means paying for servers. It does not. The free tiers from the major platforms are now generous enough to run a real, live product on, with a real database and a real domain, for zero dollars a month. Every app and site I run, including this one, lives on free infrastructure. Here is the stack.
Hosting the front end: Vercel, Cloudflare, Netlify
For websites and web apps, three platforms host you for free:
- Cloudflare Pages is my default. Static sites and front ends deploy free, with a global CDN, free SSL, and no bandwidth bill worth worrying about. Cloudflare also gives you free DNS and can put your whole site behind its network for nothing.
- Vercel has a free hobby tier that is excellent for Next.js and other frameworks, with automatic deploys straight from your Git repo.
- Netlify and GitHub Pages round it out. GitHub Pages in particular hosts any static site free, straight from a repository.
Between these, hosting a personal site or a small app is simply a solved, free problem.
The database: MongoDB Atlas, Supabase, Neon
The part people assume they have to pay for, a real database, is also free at the sizes most projects need:
- MongoDB Atlas has a free forever M0 cluster. It is small, but it is a genuine cloud database that is plenty for a side project or an early product.
- Supabase gives you a free Postgres database with authentication, storage, and APIs on top. For a lot of apps this is the entire backend, free.
- Neon offers a serverless Postgres free tier that scales to zero when nothing is using it, so you pay nothing while it sits idle.
The rest of the plumbing, also free
- Cloudflare Workers and R2 run serverless functions and object storage with free tiers, and R2 famously does not charge for egress, which is where storage bills usually explode.
- Auth comes free with Supabase, or from other providers with free tiers.
- Email, analytics, error tracking, almost all of it has a free tier big enough for a project that is not yet making money.
The one thing worth paying for: the domain
The single cost I do pay is a domain name, and even that is cheap. A .com from Porkbun or Cloudflare runs about ten to fifteen dollars a year. That is the whole hosting budget for a real, live product: roughly a dollar a month for the name, and free for everything else.
Watch the catch
Free tiers change, so two rules. First, read the current limits before you commit, since platforms occasionally cut or remove a free plan, and you do not want your database on the one that just did. Second, free tiers throttle or sleep under load, which is fine for a project with light traffic and something to fix later if you ever get real scale. That is a good problem, and by the time you have it, the app is earning enough to pay its own bills.
The move
- Front end on Cloudflare Pages or Vercel, deployed from Git.
- Database on MongoDB Atlas, Supabase, or Neon, whichever fits your stack.
- Serverless bits and storage on Cloudflare Workers and R2.
- Buy one cheap domain and point it at the free host.
This is exactly how I shipped the apps I have built without a hosting bill. The barrier to putting something real on the internet is not money anymore, it is just doing it. More of the build-it-for-cheap mindset is over in Frugal SF.