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.

Last verified August 2026Visit Cloudflare Pages

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.

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

Try StaticForm free

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

FeatureStaticFormCloudflare Pages
What exists out of the box
Receives HTML form data
Works away from Cloudflare Pages
Hosted submission inbox
Submission storage
Build with KV, D1, R2, or external DB
Search, export, spam state, deletion UI
Server-side field rules
Write in Function
Native file storage
Build with R2 or other storage
Delivery and operations
Email notification builder
Custom sender or SMTP
Build with email provider
Webhook action
Write fetch call
Google Sheets and Notion
Pro
Build API integration
Conditional routing
Pro
Write code
Queues and durable workflows
Managed action queue
Cloudflare Queues or Workflows
Execution logs and manual retry UI
Complete control over application code
Spam and security
Automatic spam classification
Turnstile
Free, integrate and verify yourself
Custom spam rules and blocklists
Write code
Secrets remain server-side
No submission quota
Subject to Worker and storage limits
Pricing and ownership
Usable free infrastructure tier
Managed product support
Platform support only
You own maintenance and incidents

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
Try StaticForm free

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.

7-day free trialCancel anytimeData stored in EUSpam never counted

Ready to get started?

Add forms to your site in minutes