StaticForm vs Cloudflare Pages
Cloudflare Pages Static Forms is not a managed inbox hiding behind a plugin name. It is a small request interceptor that passes FormData to code you write. We followed the official implementation from the HTML attribute through Pages Functions, KV, Turnstile, email, and current infrastructure limits. The result can be cheap and powerful, but it is a build-versus-buy decision, not a normal feature comparison.
What using Cloudflare Pages actually involves
Cloudflare supplies excellent primitives. The Static Forms plugin connects the first two, a browser form and a Pages Function. Storage, notifications, spam decisions, retries, and the operator experience remain your system to design.
Cloudflare does not offer a Netlify-style Forms product
Cloudflare explicitly notes that Pages does not support Netlify Forms. Its Static Forms package is a Pages Functions plugin, not a hosted form backend. It intercepts forms with data-static-form-name and hands your respondWith callback a FormData object and a name. What happens after that is entirely application code.
Installation adds server code to the same repository
You install @cloudflare/pages-plugin-static-forms, create a Pages middleware file, and return the plugin with a respondWith function. The plugin rewrites the form method and action so it can intercept the request. Cloudflare also documents a lower-level alternative: create a Pages Function route, call request.formData(), validate it, and return a Response yourself.
Persistence is an architecture decision, not a setting
The official plugin example suggests serializing the submitted values and writing them to Workers KV. That means you must create and bind a namespace, design keys, choose retention, build a list or search UI, handle deletion, and account for KV limits. D1, Durable Objects, R2, or an external database may be more suitable depending on query and consistency needs, but none creates a submission inbox automatically.
Spam protection is another component to assemble
Cloudflare Turnstile is free and supports unlimited challenges, but the form handler must verify each token server-side and decide what to do on failure. Rate limiting, honeypots, content analysis, IP or email reputation, blocklists, a spam folder, and false-positive correction are separate code or services. The Static Forms plugin itself performs no spam classification.
Email and webhooks are code paths you own
A handler can call any HTTP API, enqueue work, or use Cloudflare Email Service bindings, so the ceiling is high. You must still build message templates, secrets, reply-to handling, webhook signatures, retry strategy, idempotency, logs, failure alerts, and an operator retry path. The plugin only guarantees that the callback receives the submission and returns a response.
The infrastructure can be nearly free at small scale
Workers Free includes 100,000 requests per day with 10 ms of CPU time per invocation. KV Free includes 1,000 writes per day, 100,000 reads, 1,000 list operations, and 1 GB stored data. Turnstile is free. Workers Paid starts at $5 per month. Those limits can support many contact forms, but the engineering and maintenance time is part of the price.
Infrastructure primitives or a finished operations workflow?
Cloudflare wins if the objective is complete control. The form handler is ordinary code at the edge. It can validate against a database, route by business logic, enqueue durable work, write to any storage service, and call any API. You avoid a form-vendor schema and can make the system fit an existing application exactly.
StaticForm wins if the objective is to stop owning that code. Creating a form immediately provides an endpoint, inbox, validation, spam filtering, four CAPTCHA integrations, email and webhook actions, EU storage, execution logs, and retry controls. The tradeoff is a monthly product fee and a narrower extension surface than a general serverless platform.
The DIY option is often described as free, but only the infrastructure is free within generous limits. A production system still needs storage keys or SQL schema, a secure admin view, exports and deletion, privacy retention, email delivery, templates, spam controls, rate limits, idempotency, retries, monitoring, and incident response. Reusing an internal platform can make that rational; building it for one contact form usually does not.
The plugin also creates hosting lock-in of a different kind. Its interception behavior runs inside Pages Functions. StaticForm can receive from a Cloudflare Pages site today and keep the same endpoint if the site moves tomorrow. With the Cloudflare implementation, the handler, bindings, and data services move with the application architecture.
7-day free trial. No payment method required.
Where the Cloudflare approach genuinely wins
Complete control over code and data flow
Every validation, write, integration, response, and retention decision can be expressed in your own Worker. There is no managed feature ceiling.
Extremely generous free infrastructure
One hundred thousand Worker requests per day, one thousand KV writes per day, one gigabyte of KV data, and free Turnstile can support substantial low-compute form traffic.
A coherent serverless platform
Workers, Pages Functions, KV, D1, R2, Queues, Workflows, Durable Objects, Turnstile, and Email Service can be combined under one Cloudflare account.
No extra network hop to a form SaaS
The form handler executes inside the same Pages application. Teams with mature Cloudflare tooling can deploy, observe, and secure it alongside the rest of their serverless code.
Feature by feature
The infrastructure is cheap; engineering is the variable
A simple handler, KV write, and Turnstile check can remain inside Cloudflare's free limits. Workers Paid begins at $5 per month and raises limits substantially. Extra database, object storage, email delivery, monitoring, and staff time depend on the architecture you choose.
Cloudflare DIY free stack
$0 within limits
- 100,000 Worker requests per day
- 1,000 KV writes per day
- 1 GB KV storage
- Free unlimited Turnstile challenges
- All application code and maintenance are yours
StaticForm trial
7 days managed product
- Endpoint, inbox, spam, actions, and logs included
- No infrastructure assembly
- No payment method required
- Works with any host
Cloudflare Workers Paid
$5 /month minimum
- 10 million Worker requests included
- 30 million CPU milliseconds included
- One million KV writes included
- Storage and email services priced separately
- Development and operations time not included
StaticForm Starter
€9 /month
- Unlimited submissions and forms
- 25,000 email actions
- 2 GB file storage
- Spam inbox and four CAPTCHA providers
- Visual actions, logs, and retries
The direct dollar comparison favors Cloudflare DIY. The operational comparison favors StaticForm when the team would otherwise need to build and maintain the inbox, spam pipeline, notification system, logs, and retry tools.
Who should use which
Cloudflare Pages makes sense if:
- You already operate Cloudflare Workers and have reusable form infrastructure
- You need custom application logic that no managed action builder can express
- Your team wants full ownership of storage, retention, and delivery code
- You can staff monitoring, spam response, email deliverability, and incident handling
- Minimizing infrastructure spend matters more than minimizing engineering work
StaticForm makes sense if:
- You want a working endpoint, inbox, spam filter, and notifications without backend code
- You need non-developers to inspect, export, mark spam, or retry deliveries
- You want the form to remain portable across hosting providers
- You need custom email, SMTP, webhooks, files, and audit detail in one product
- You would otherwise be building these capabilities for only one or a few forms
7-day free trial. No payment method required.
get started
Your next real lead is
waiting to arrive.
Set up a form in 5 minutes. Spam blocked automatically. Every real submission stored, delivered, and logged.
Ready to get started?
Add forms to your site in minutes