Host a small website for free with Cloudflare and Supabase
Run a fast small-business site and its forms for $0 a month on Cloudflare and Supabase free plans: what you get, the real limits and the traps to avoid.
Published
Many small sites pay $10 to $30 a month for shared hosting they barely use. If your site is mostly pages that rarely change, plus a contact or booking form, it can usually run for free. This site runs that way: the pages on Cloudflare, the forms, database and emails on Supabase.
Limits below are from the providers’ own pages as of October 2026. They change, so check them before you rely on a number.
The setup in one picture
- Pages are built once into plain HTML files and served by Cloudflare from data centres close to each visitor. No server to update, nothing for attackers to log in to.
- Forms, logins and data go to Supabase: a hosted Postgres database with small server functions (“Edge Functions”) that check the form, store it and send an email.
- Email goes through a sending service such as Resend, so messages from your domain reach the inbox instead of spam.
What the free plans give you
| Cloudflare (Workers static assets) | Supabase Free | |
|---|---|---|
| Visits | Requests for static files are free and unlimited | 50,000 monthly active users (logins) |
| Code that runs | 100,000 requests per day for Worker code | 500,000 Edge Function calls per month |
| Storage | Your built site, up to 20,000 files | 500 MB database, 1 GB file storage |
| Traffic out | Not charged for static files | 5 GB per month |
| Backups | Your site is in Git | None on the free plan |
For a small business site with a few hundred form messages a month, that is far more than enough.
The traps
- Supabase pauses free projects after one week without activity. A paused project does not accept form submissions until you restore it from the dashboard (you have 90 days). A site that gets regular form traffic or logins stays awake; a quiet one may not. Paid projects are never paused.
- No automatic backups on the free plan. Export your data regularly, or move to the paid plan (from about $25 a month at the time of writing) once the data matters to your business.
- Cloudflare only gives you a custom domain on Workers if your domain’s DNS is managed by Cloudflare. Moving DNS is free but must be done carefully so your email keeps working.
- Builds are not instant. Every change is a new build and deploy, usually one to two minutes. Fine for a business site, not for a news site that changes every minute.
Who it suits, and who it does not
It suits brochure sites, portfolios, landing pages, small booking or quote forms, and documentation. It does not suit a large online shop, a site where editors expect a WordPress-style editor, or anything that needs heavy server work for every visitor.
If you are on WordPress today, moving is a rebuild, not a copy. Sometimes it is worth it; sometimes keeping WordPress on a better plan is the cheaper answer.
What setting it up involves
- Building the site (or converting the current one) into a static site in a Git repository.
- Creating the Cloudflare project, connecting the domain and checking that email DNS records survive the move.
- Creating the Supabase project, the form endpoint, spam protection and email sending.
- A short written guide for you: how to change text, where the form messages arrive, and what to check once a month.
If you want this for your site, describe what you have now and what the site needs to do. You get a fixed quote before anything starts.