Does Cloudflare Pages have forms? 4 ways to get submissions
Quick answer
No. Cloudflare Pages includes up to 100 custom domains per project, and it has no form that stores entries. If your site is one landing page, choose Convika's Free plan: your own subdomain, a form that shows 50 signups a month and keeps the rest, and 90 days of visitor stats.
Free plan: no credit card, 1 published page, 50 form entries a month shown.
On this page
- Cloudflare Pages' free plan at a glance
- Does Cloudflare Pages have a form feature
- 4 ways to get submissions from a Pages site
- Limits on the free plan, and what counts against them
- What Cloudflare's own form demos show
- A year with a working form: what each route costs
- A free form that keeps signups with no code: Convika
- Cloudflare Pages and Convika side by side
- Which one to pick
- Frequently asked questions
- Sources
Pages is generous with hosting. Requests for static files cost nothing. Custom domains come with the free plan, up to 100 per project, and so does Web Analytics. What Pages does not have is a place where form entries end up. There is no forms feature to switch on, as Netlify has. A <form> on a Pages site needs something you add.
Cloudflare's docs give 2 routes: write a Pages Function, or send the form to a third-party form service like Formspree. A Pages Function shares the Workers Free allowance of 100,000 requests a day. There are 2 more routes: the Static Forms plugin, and hosting the page on Convika. This page goes through all 4, with the free allowances behind each.
Cloudflare Pages' free plan at a glance
| What you get | Cloudflare Pages Free | Source |
|---|---|---|
| Price | $0 | Cloudflare docs: Pages limits, Cloudflare docs: Workers pricing |
| Address | yourproject.pages.dev | Cloudflare docs: Direct Upload |
| Your own domain | Yes, up to 100 per project | Cloudflare docs: Pages limits |
| Form | None built in; you write a Pages Function, or add a form service | Cloudflare docs: Static Forms plugin |
| Visitor stats | Yes, Web Analytics, free | Cloudflare docs: Web Analytics for Pages |
| Badge on your site | None | Live check of Cloudflare's Pages form demos, October 12, 2026 |
| Commercial use | No restriction found in Cloudflare's docs or terms | Cloudflare terms: Developer Platform |
| An HTML file you already have | Yes: drag a folder or zip that contains it | Cloudflare docs: Direct Upload |
Checked on October 12, 2026 against Cloudflare's own pages, linked in each row. Prices in US dollars.
Does Cloudflare Pages have a form feature
No. Cloudflare's tutorial Create a HTML form starts with a plain HTML form on Pages, then points out the gap: “However, there is currently no request handler at the /api/submit address.” The tutorial fills it with a Function and ends with this summary: “You created a static HTML document with a form that communicates with a Worker handler to parse the submission request(s).” The Function reads the entry and replies with it. Nothing in the tutorial saves it.
Pages also offers a plugin for forms, and it too hands the work to your code. Its docs say “The Static Forms Pages Plugin intercepts all form submissions made which have the data-static-form-name attribute set.” and “This allows you to take action on these form submissions by, for example, saving the submission to KV.”
4 ways to get submissions from a Pages site
| Way | What you set up | Where entries end up | Free allowance |
|---|---|---|---|
| A Pages Function you write | A handler in functions/, plus storage such as D1 or KV | Wherever your code saves them | 100,000 requests a day, shared with any Workers on the account; D1: 100,000 rows written a day |
| The Static Forms plugin | data-static-form-name on the form, plus a Function that receives each entry | Wherever your code saves them; the plugin stores nothing | The same Workers allowance |
| Formspree, as in Cloudflare's second tutorial | The form's action set to your Formspree endpoint | Formspree's dashboard, with an email for each submission | 50 submissions a month, kept for 30 days |
| Host the page on Convika instead | Upload the HTML and click Add a form to my page | Convika's dashboard, with CSV export and an email for each | 50 entries a month shown on Free; later ones kept with the page for Pro |
The first 2 ways keep everything on Cloudflare. You own the code: validation, spam checks, where entries are stored, and how you read them. Cloudflare's second tutorial, Add an HTML form with Formspree, introduces Formspree in one sentence: Formspree “is a back-end service that handles form processing and storage, allowing developers to include forms on their website without writing server-side code or functions.”
Limits on the free plan, and what counts against them
- Static files: “On both free and paid plans, requests to static assets are free and unlimited.”
- Functions: “Requests to your Functions are billed as Cloudflare Workers requests.” Workers Free sets the limit: “Accounts on the Workers Free plan have a daily request limit of 100,000 requests, resetting at midnight UTC.”
- Paid Workers: “The Workers Paid plan includes Workers, Pages Functions, Workers KV, Hyperdrive, and Durable Objects usage for a minimum charge of $5 USD per month for an account.”
- Custom domains: You get 100 custom domains per project on the free plan.
- Where new projects should start: Cloudflare's Pages docs now say “Start new projects with Workers.”
What Cloudflare's own form demos show
On October 12, 2026, Convika loaded the live demos for both of Cloudflare's form tutorials without an account and read their HTML. No form entries were sent.
- The Function demo: The demo at
submit.pages.devhas<form method="POST" action="/api/submit">. The page says the endpoint is a Pages Function that returns the fields as JSON. AnOPTIONSrequest to/api/submitanswered405. - The Formspree demo: The demo at
formspree-example-cloudflare-html.pages.devhas<form method="POST" action="https://formspree.io/f/…">. Its entries go straight to Formspree and never reach the Pages project.
Neither page carries a Cloudflare badge.
A year with a working form: what each route costs
You run a waitlist page on your own domain that collects signups for 12 months.
- Pages with a Function and D1: $0 on the free plans, plus the domain, plus the code you write and keep running.
- Pages with Formspree Free: $0, plus the domain, within 50 submissions a month, kept for 30 days.
- Convika Free: $0, plus the domain. The form shows 50 entries a month and keeps later ones for Pro, stored with the page, with no code.
A free form that keeps signups with no code: Convika
Convika hosts landing pages, 1 HTML page each, with the form and the visitor stats built in. The HTML you'd deploy to Pages uploads as it is. Convika's Free plan includes:
- Your own subdomain, such as
www.yourbrand.comorwaitlist.yourbrand.com, with the SSL certificate issued for you. The Free plan connects 1. - Commercial use on every plan, Free included, under section 7 of the terms. That covers a client's page you build, host, and bill for.
- A form that keeps the signups. Click Add a form to my page, and Convika adds a form that stores each entry, emails it to you, and exports to CSV. Free shows 50 entries a month. Signups past that aren't turned away: they're kept, and show once you're on Pro.
- 90 days of visitor stats: visits, referrers, UTM campaigns, devices, countries, and button clicks.
- AI clients that publish for you. Claude, Claude Code, and Codex connect to Convika's MCP server and sign in to your account with OAuth, so you never paste a deploy token or API key into the chat. They can read the page's visits and form entries back to you, too.
3 ways to get your page onto Convika
- Rebuild it from its link. Paste the address of the page you have now into the free rebuild tool and click Rebuild my page. You don't need an account. Convika reads the page, keeps its colors and fonts, writes a new version from its text, and lists what it changed and why. Click Keep this page to sign up free and move it into your account.
- Describe it in the dashboard. Sign up free, click Create with AI, and describe the page, or paste a link to a page it should start from. A new page costs 1 AI credit on the default model, and Free accounts start with 10.
- Upload the HTML your AI made. If ChatGPT, Claude, or Gemini wrote the page as one HTML file, click Upload an HTML file in the dashboard and add the
.htmlor.htmfile, up to 2 MB, or paste its code. Uploading uses no AI credits. The free HTML publishing tool shows you a preview before you sign up.
The Free plan includes 1 published page, with a small Convika bar at the bottom of each page. Pro costs $12 a month, removes the bar, and shows every form entry.
Where Cloudflare Pages fits better: Cloudflare Pages fits a multi-page static site, or an app with a backend you're writing anyway.
Cloudflare Pages and Convika side by side
| Plan | Price | Address | Your own domain | Form | Badge | Visitor stats |
|---|---|---|---|---|---|---|
| Cloudflare Pages Free | $0 | yourproject.pages.dev | Yes, up to 100 per project | None built in; you write a Pages Function, or add a form service | None | Yes, Web Analytics, free |
| Convika Free | $0 | yourpage.convika.page | 1 subdomain, such as www | Yes, 50 entries a month, with CSV export and an email for each; entries past that are kept for Pro | A small Convika bar at the bottom of the page | 90 days: referrers, UTM campaigns, devices, countries, and button clicks |
| Convika Pro | $12 a month, or $108 a year | The same, or your own subdomain | Unlimited subdomains | Yes, no monthly cap | None | Up to all time |
The guide Ways to make a page's form save entries compares more form services for a page that stays on another host.
Which one to pick
- A site that already runs code on Cloudflare: write a Pages Function, writing entries to D1 or KV. It is free within the Workers allowance, and the entries stay on your account.
- A static site on Pages where you would rather not write a handler: add Formspree, as Cloudflare's tutorial shows, within its free monthly allowance.
- One landing or waitlist page that needs a form and your own domain, with no code: pick Convika's Free plan. Upload the HTML, add the form, and connect a subdomain such as www.
Frequently asked questions
Does Cloudflare Pages have forms?
No, Cloudflare Pages has no forms feature that stores entries. Cloudflare's tutorials either have you write a Pages Function to receive each submission or send the form to Formspree. The Static Forms plugin also passes each entry to code you write.
How do I handle form submissions on Cloudflare Pages?
Write a Pages Function at the path your form posts to, read the fields, and save them somewhere, such as D1 or KV. Functions count against the Workers Free allowance of 100,000 requests a day, shared with any Workers on the account. Without code, point the form's action at a form service such as Formspree.
What is the Cloudflare Pages Static Forms plugin?
The Static Forms plugin is a Pages Plugin that catches submissions from forms marked with data-static-form-name and hands each one to a function you write. It does not store entries itself. Its docs give saving to KV as an example of what your function can do.
How do I add a contact form to a Cloudflare Pages site?
Add the HTML form, then give it somewhere to send entries. That can be a Pages Function you write, or a form service's endpoint in the form's action, as in Cloudflare's Formspree tutorial. If the site is a single landing page, you can host it on Convika instead and click Add a form to my page; each entry is stored and emailed to you.
Can Cloudflare Pages email me form submissions?
No, Cloudflare Pages cannot email you submissions by itself. A Pages Function needs code that sends the email. Formspree's free plan sends an email for each submission, and Convika's form emails each new entry to you, up to 50 a month on Free.
Is a custom domain free on Cloudflare Pages?
Yes, Pages projects on the free plan can use 100 custom domains per project. You still buy the domain from a registrar. An apex domain such as example.com needs its nameservers moved to Cloudflare; a subdomain needs only a CNAME record, as Cloudflare's custom domain docs explain.
Can I use Cloudflare Pages for a business site?
Yes, no restriction on business use appears in Cloudflare's Pages docs or its Developer Platform terms, which say “Unlike most Cloudflare products, the Developer Platform can be used to host content.” One clause in Cloudflare's Self-Serve Subscription Agreement covers every site on its free services: under section 2.2.1(h), you will not “process or collect personal or business credit card information on any web property that is receiving Free Services”. Cloudflare's plans page describes the Free plan under Network & CDN as “For personal or hobby projects that aren't business-critical.” That is how Cloudflare pitches the plan, not a term of the agreement. The form is the part you add yourself.
Sources
Facts on this page about Cloudflare Pages come from these pages, read on October 12, 2026:
- Cloudflare docs: Pages overview
- Cloudflare docs: Pages limits
- Cloudflare docs: Direct Upload
- Cloudflare docs: Static Forms plugin
- Cloudflare docs: Create a HTML form
- Cloudflare docs: Add an HTML form with Formspree
- Cloudflare docs: Pages Functions pricing
- Cloudflare docs: Workers pricing
- Cloudflare docs: Workers limits
- Cloudflare docs: D1 pricing
- Cloudflare docs: Web Analytics for Pages
- Cloudflare terms: Developer Platform
- Cloudflare plans
- Cloudflare Self-Serve Subscription Agreement
- Cloudflare docs: Pages custom domains
- Formspree plans
Next step
How to share an HTML file as a link that opens on any phone
Email and Google Drive open HTML on a phone without scripts. Compare 5 hosts (Netlify Drop, Tiiny Host, Pagelive, GitHub Pages, Convika) and follow 4 steps.
Related articles
- Is Cloudflare Pages free for commercial use?Yes: Cloudflare's agreement sets no personal-use limit on Pages, but bans card data on free services. See 11 cases, the free limits, and 4 other hosts' rules.
- Free landing page hosting with a form and your own domain (2026)2 of 11 free plans store form entries on a domain you own without another service: Netlify and Convika. Cloudflare Pages and GitHub Pages have no form.
- How to make the signup form on your AI-made page actually workThe form ChatGPT or Claude wrote sends entries nowhere. Compare Formspree, Netlify Forms, Google Forms, and Convika, then set one up step by step.
- Is Netlify free? What the Free plan's 300 credits cover in 2026Netlify's $0 plan gives 300 credits a month (15 per deploy, 20 per GB) and allows commercial projects. See how long 300 credits last for 1 HTML page.
- Which free hosting lets me run a business site? GitHub Pages, Netlify, Vercel, Cloudflare Pages: what each one's terms sayNetlify Free and Cloudflare Pages allow a business site; GitHub Pages and Vercel Hobby don't. Each host's rule, quoted and dated, across 10 kinds of site.
- Netlify Drop alternatives in 2026: 7 hosts compared on forms, stats, and domainsNetlify Drop links have a temporary password until you sign in and pause once 300 credits are used. Compare 7 hosts, including Cloudflare Drop and Convika.