
Guide
Ship a side project for under $10 a month
Free tiers cover compute, Postgres, storage, and email for a real app — until they don't. The stack that costs about $1 a month, and the four cliffs that end it.
Published July 3, 2026
A real web app runs for under $10 a month on free tiers: serverless compute and static hosting free, Postgres free, object storage free with no egress charge, and 3,000 transactional emails free. The only unavoidable cost is a domain, at roughly $1 a month. The limits are real — knowing where they end is the whole skill.
What actually costs money on a small app?
Four things, and only four. Compute, to run your code. A database, to keep the data. Egress, to send bytes to the people using it. And email, because password resets and receipts have to leave the building somehow. Everything else on a small project is either free or optional.
Egress is the one that surprises people, because it is the only line that scales with success rather than with what you built. It is also the line where the providers differ most: Cloudflare R2 charges nothing for data transfer out, AWS gives you 100 GB a month free and then charges $0.09 per GB, and Vercel bills Fast Data Transfer at $0.15 to $0.35 per GB once you are past the first terabyte on Pro. Same bytes, very different bills.
| Layer | Free allowance | What ends it |
|---|---|---|
| Compute (Cloudflare Workers) | 100,000 requests/day, 10 ms CPU per invocation | A daily spike, or CPU-heavy work per request |
| Static assets (Workers) | Free and unlimited | Nothing, at this scale |
| Postgres (Neon) | 0.5 GB storage, 100 CU-hours, 5 GB egress per project | Storage growth, or an always-on connection |
| Postgres + auth (Supabase) | 500 MB database, 5 GB egress, 1 GB files, 50,000 MAU, 2 projects | A week of inactivity pauses the project |
| Object storage (Cloudflare R2) | 10 GB stored, 1M Class A ops, 10M Class B ops, free egress | Storage past 10 GB, at $0.015/GB-month |
| Email (Resend) | 3,000/month, capped at 100/day, 1 domain | A launch day, via the daily cap |
| Frontend (Vercel Hobby) | 1M invocations, 1M edge requests, 4 CPU-hours | Charging money — Hobby is non-commercial only |
What does the stack look like line by line?
Here is the whole budget for an app with a database, file uploads, transactional email, and a custom domain. Nothing here is a trial or a promotional credit — these are standing free tiers on published plans, checked in August 2026.
LAYER SERVICE PLAN COST/MO
app + API Cloudflare Workers Free $0.00
static assets Workers static assets Free $0.00
database Neon Postgres Free $0.00
file storage Cloudflare R2 Free $0.00
email Resend Free $0.00
source + CI GitHub Free $0.00
domain registrar, ~$12/year n/a $1.00
--------
TOTAL $1.00The first paid step, when it comes, is usually one line changing. Cloudflare's Workers Paid plan starts at $5 a month and raises the ceiling from 100,000 requests a day to 10 million a month with 30 million CPU-milliseconds, which takes the same stack to $6 and buys a lot of room. That is the shape you want: a budget where growth moves one number, not all of them.
Where do free tiers actually end?
Daily caps, not monthly ones. Workers gives you 100,000 requests per day, and Resend caps the free plan at 100 emails per day inside a 3,000-per-month allowance. A monthly number tells you nothing about whether you survive the afternoon your post gets attention. Read the per-day line first.
Inactivity, not activity. Supabase pauses free projects after one week of inactivity and limits you to two active projects. Serverless Postgres auto-suspends idle compute by design. Neither is a problem for a project in progress; both are embarrassing when a stranger finally clicks the link you posted three weeks ago.
Terms, not limits. Vercel's Hobby plan is generous and free, and its fair-use guidelines restrict it to non-commercial, personal use. If the project has a price tag, you are on Pro at $20 a month per deploying seat whether or not you use a single dollar of the included usage. This is the single most common way a $0 stack turns out not to be one.
Credits, not tiers. The AWS Free Tier is no longer an open-ended allowance for new accounts. New customers get up to $200 in credits — $100 immediately and up to $100 more for exploring services — and the account closes on its own six months after opening or when the credits run out, whichever comes first, unless you convert to a paid plan. Thirty-plus services remain always free within monthly limits, including Lambda's 1 million requests and 400,000 GB-seconds per month. But AWS as a whole is now a clock, not a floor.
What should you pay for first?
A domain, immediately, and in your own registrar account. It costs around a dollar a month amortised and it is the only thing on the list that makes every other choice reversible — you can move hosts, databases, and email providers without anybody noticing, as long as the address stays yours.
After that, buy whichever cliff you hit first, and only that one. The failure mode is not underspending; it is pre-emptively buying a $25 database plan, a $20 hosting plan, and a $20 email plan for an app with eleven users, then quietly resenting the project for costing $65 a month before it has earned anything.
When should you stop optimising for free?
The moment someone else depends on it. Free tiers are excellent at carrying a project from idea to something you can show people, and they are a poor place to keep the only copy of data that matters to a paying customer. The graduation signals are specific: you are rationing something to stay under a cap, you are afraid of a traffic spike rather than pleased by one, or you have started explaining a cold start to someone.
At that point the question changes from how little you can spend to which platform trade-off you want, which is a different comparison entirely. And if the project is turning into a tool your business runs on rather than a thing you tinker with, the honest next question is what a proper build actually costs.
Questions
Can I run a business on free tiers?
Partly. Cloudflare, Neon, Supabase, and Resend free plans have no non-commercial restriction, so a small revenue-generating app can legitimately run on them. Vercel's Hobby plan is the exception — its fair-use guidelines restrict it to non-commercial personal use, so the moment you charge for the thing, Hobby is the wrong plan regardless of your traffic.
What's the first thing I should pay for?
A domain, then backups. A domain is the one cost you cannot engineer away and the one thing that makes the project portable — it is what lets you change every provider underneath without losing your users. Backups come second, because free tiers are generally not where you want your only copy of anything to live.
Will free-tier cold starts ruin the experience?
For a project nobody has found yet, no. Serverless Postgres that auto-suspends after a few idle minutes will add a second or two to the first request after a quiet period, and that is invisible when you are demoing to five people. It becomes a real problem at exactly the point you can afford to fix it by turning suspension off.
Isn't this just building on someone else's cliff edge?
Yes, and that is the trade you are making knowingly. The defence is portability, not paranoia: keep your data in plain Postgres, keep your app in a container or a standard framework, keep the domain in your own registrar account, and never build on a proprietary primitive you could not replace in a weekend.
Where these numbers come from
Every figure above is from the provider's own published pricing, checked on 10 August 2026. Free tiers change; verify before you commit to one.
- Cloudflare Workers pricing — free plan requests per day, CPU per invocation, Paid plan from $5
- Cloudflare R2 pricing — 10 GB free storage, free egress, $0.015 per GB-month after
- Neon pricing — Free plan storage, CU-hours, and egress per project
- Supabase pricing — Free plan limits, two-project cap, and the one-week pause
- Resend pricing — 3,000 emails a month, 100 a day, 1 domain
- Vercel Hobby plan — included usage, and the non-commercial fair-use restriction
- AWS Free Tier and AWS Lambda pricing — the $200 credit structure, six-month window, and always-free Lambda allowance
The arithmetic changes once a side project becomes something a business depends on — that's the point where building it as a real application and paying for boring infrastructure starts being the cheaper option.
Related notes
- Railway vs Vercel + Supabase vs AWS
- How much does a custom web app cost?
- Local LLM or hosted API: how to choose
More on app development
- What is an MVP (minimum viable product)?
- When a custom app beats off-the-shelf software
- What does an MVP need to be viable?
- When to move off no-code onto a custom web app
Related service: App Development
Want this kind of engineering on your project?
Tall Karol takes on fractional and project-based engagements for startups and agencies.
Book a working session