FormFlow
EN
Start free
Now in public beta v0.1.0 — public beta

A form backend that doesn't get in your way.

Point any HTML form at FormFlow and get email + webhooks, spam protection, file uploads and analytics. No server, no SDK, no rebuild.

  • Free plan with 500 submissions/mo
  • No credit card
  • Works with any framework
Trusted by indie devs, agencies and studios shipping fast
NORTHCAP
retroplant
Hugo & co
paperhouse
lumen.dev
Studio Mira
How it works

From <form> to inbox in under a minute.

01

Create a form

One click in the console. You get a unique endpoint and a snippet to drop into your HTML.

02

Point your form at it

Set the form's action attribute. Works with raw HTML, Next.js, Astro, SvelteKit — anything that submits.

03

Receive everywhere

Email, webhooks, R2 file storage, Slack, Discord, sheets. Filters, retries and a clean audit log.

Everything you need

Boring on purpose, where it counts.

See full feature list

Spam protection built-in

Honeypot, Turnstile and per-IP rate limits ship on by default. Quiet inbox, no setup.

Email + webhook fan-out

Forward to anyone on your team, fire webhooks to Slack, Discord, sheets — with retries and a delivery log.

File uploads to R2

Accept attachments up to 25 MB. Stored in your R2 bucket, served behind signed URLs.

Analytics that matter

Submission volume, success/spam ratio, response times — read straight from Analytics Engine.

Localized error messages

API responds in the request's Accept-Language. English + Russian shipped; more on the way.

Teams from day one

Memberships and roles modelled into the schema. Bring your studio, share a workspace.

For developers

An API that reads like documentation.

REST + OpenAPI 3.1, generated from the same zod schemas that validate the requests. Predictable errors in application/problem+json. Idempotency keys on every write.

  • Two key types
    Submission keys for ingest, management keys for the console — rotate independently.
  • Multipart or JSON
    Same endpoint, both accepted. Pick whichever your form already speaks.
  • No lock-in
    Export your submissions any time as JSON or CSV. Your data is yours.
# Submit a form
$ curl -X POST https://fflw.io/f/abc12xy \
  -H "Idempotency-Key: 8a7f-..." \
  -F email=hello@studio.co \
  -F "message=Hi, we'd love a demo."

# → 201 Created
{
  "id": "sub_8mU2H4qY",
  "received_at": "2026-05-18T14:32:08Z",
  "webhooks": ["wh_slack"]
}
Honest pricing

One plan that fits the way you ship today.

Monthly submissions, not seats. Move up only when your traffic does — never the other way around.

Hobby
Free
For weekends
  • 500 submissions / mo
  • 1 form, 1 webhook
  • Email forwarding
Pro
POPULAR
$19 / month
Most teams pick this
  • 10k submissions / mo
  • Unlimited forms
  • Webhooks + R2 files
Team
$49 / month
Studios & agencies
  • 100k submissions / mo
  • Memberships & roles
  • SSO (coming)

Compare all features →

FAQ

Things people ask before signing up.

Do I need a backend?

No. FormFlow runs on Cloudflare Workers and accepts your HTML form posts directly. The only thing you change is the action attribute.

What about spam?

Honeypot, Cloudflare Turnstile and rate-limits are on by default. You can disable any of them per form if you need to.

Can I export my data?

Any time, as JSON or CSV. Files in R2 stay in your bucket; we keep a metadata pointer and nothing more.

Do you store submission contents?

Yes — encrypted at rest, deleted after the retention window you pick. 30 days is the default.

Stop writing form endpoints.

Sign up, paste an endpoint, ship. The free plan gets you to 500 submissions a month before we ever ask for a card.