Build forms in Strapi.
Render them anywhere.

FormFlow turns Strapi into a complete form backend — visual building, validated submissions, spam protection, email, webhooks, and exports — served over one clean REST API. Every submission lands in your own database; your frontend renders it with your own markup.

  • MIT-licensed core — free forever, not a trial
  • Submissions keep landing, even if a license lapses
  • No CSS shipped — your markup, your design system

A live form, rendered straight from its Strapi schema.

Plays with
  • Strapi 5
  • REST API
  • React
  • Vue
  • Next.js
  • Nuxt
  • Astro
  • Vite

Every submission travels the same five stages — and FormFlow owns all of them.

From a schema in Strapi to a delivered, governed submission, one plugin handles the whole path. No glue code, no stitched-together services — just the pipeline below.

  1. 01
    Build

    Design the form in Strapi

    A visual builder with 20+ field types, layout blocks, conditional visibility, and multi-step wizards. Live preview, duplicate, reorder — no code.

    • drag & drop
    • conditional logic
    • multi-step
  2. 02
    Validate

    Catch bad input, both ends

    Per-field rules with custom messages. The SDKs validate client-side against the same schema the server enforces, so nothing lands half-checked.

    • per-field rules
    • client + server parity
  3. 03
    Protect

    Stop spam without punishing people

    Honeypot, rate limiting, and reCAPTCHA v2 ship free. Pro adds reCAPTCHA v3, Turnstile, hCaptcha, and IP blocklists.

    • honeypot
    • rate limit
    • reCAPTCHA / Turnstile / hCaptcha
  4. 04
    Deliver

    Route every submission where it belongs

    Email notifications and autoresponders, HMAC-signed webhooks with retries, and pre-built integrations — fired the moment a row is saved.

    • email
    • webhooks
    • Slack · Sheets · HubSpot · Notion
  5. 05
    Govern

    Own the data after it arrives

    A submission inbox with statuses and bulk actions, exports to CSV/JSON/Excel/PDF, analytics, plus GDPR retention, audit logs, and approvals.

    • inbox
    • exports
    • GDPR + audit

Everything happens in the Strapi panel.

Design forms, dial in spam and delivery, and triage submissions — all without leaving your CMS. These are real captures from a live FormFlow install.

Twenty-plus field types, from text to signature.

Free covers the inputs every form needs. Advanced fields unlock on any paid plan — the builder shows exactly which is which.

Text & contact

  • text
  • textarea
  • email
  • number
  • phone
  • url
  • password

Choice & dates

  • select
  • radio
  • checkbox
  • boolean
  • date
  • time
  • datetime

Files & layout

  • file
  • hidden
  • heading
  • paragraph
  • divider

Advanced

  • signature
  • rating / NPS
  • address + map
  • rich text
  • calculated
  • payment

FreePro

Headless by design. Your markup stays yours.

The SDKs fetch the schema, render the fields, validate, and submit — and ship no CSS. Hand them a slug; style every element yourself with Tailwind, shadcn, MUI, or plain CSS.

contact-form.tsxReact
import {
  FormFlowProvider, FormFlowField, useFormFlow,
} from '@formflowjs/react';

function Fields() {
  const f = useFormFlow();
  return (
    <form {...f.getFormProps()}>
      {f.fields.map((field) => (
        <FormFlowField key={field.name} name={field.name}
          render={(api) => (
            <label {...api.getLabelProps()}>
              {api.field.label}
              <input {...api.getInputProps()} />
              {api.invalid && <span>{api.error}</span>}
            </label>
          )} />
      ))}
      <button disabled={f.isSubmitting}>
        {f.schema.settings.submitButtonText}
      </button>
    </form>
  );
}

Renderless fields hand you value, errors, and ARIA-complete prop getters. Full guides for Next.js, Astro, Nuxt, and Vite live in the SDK repo.

From npm install to a live endpoint in three steps.

01

Install & enable

Add the plugin and switch it on. FormFlow creates its own content types on startup.

Terminal
npm install @formflowjs/strapi-plugin-formflow
config/plugins.tsts
// config/plugins.ts
export default {
  formflow: {
    enabled: true,
  },
};
02

Build & fetch

Design a form in the admin, note its slug, then read the sanitized public schema.

Terminal
curl https://cms.example.com/api/formflow/forms/contact

Secrets such as the reCAPTCHA secret key are stripped server-side — the public schema is safe to ship to the browser.

03

Submit values

Post a flat map of field names to values. Validation failures return a per-field error map.

Terminal
curl -X POST \
  https://cms.example.com/api/formflow/forms/contact/submit \
  -H 'Content-Type: application/json' \
  -d '{ "name": "Ada Lovelace",
        "email": "ada@example.com",
        "message": "Hello from FormFlow!" }'
MethodPathWhat it does
GET/api/formflow/forms/:slugSanitized public schema
POST/api/formflow/forms/:slug/submitSubmit field values
POST/api/formflow/forms/:slug/partialSave partial → resume token
GET/api/formflow/forms/:slug/partial/:tokenResume a saved draft

Start free. Upgrade when your workflows grow.

The free core is genuinely production-ready — not a trial. Paid plans are gated at runtime by a license key; remove it and FormFlow keeps capturing submissions as the free tier. Pro and Business cover one and three projects; Agency covers as many as you run.

Free

Free

A production-ready form builder. Not a trial.

$0free forever · MIT
  • Unlimited forms & submissions
  • Every standard field type, incl. file upload
  • All validation rules
  • Submission inbox + CSV / JSON export
  • Honeypot, rate limit & reCAPTCHA v2
  • One admin email notification
  • Public REST API (single-step forms)
Install free

Business

Business

For compliance-bound teams.

$4493 projects · billed yearly
  • Everything in Pro, plus —
  • GDPR retention & anonymization
  • Consent fields, per-subject export/delete
  • Audit log & approval workflows
  • Multi-language forms
  • Priority email support
Buy Business

Agency

Agency

Every client site, one licence.

$999unlimited · billed yearly
  • Everything in Business, plus —
  • Unlimited project activations
  • One key across every client build
  • Add or retire sites without re-buying
  • Staging & preview deploys included
Buy Agency

How licensing works

What counts as a “project”?
One activation covers one FormFlow installation. Pro includes one, Business three, and Agency as many as you need. Restarts, redeploys, and plugin updates reuse the same activation — they never consume another one.
My premium features stopped working. Why?
Almost always an activation still held by an installation you no longer use. Resetting your database, changing your license key, or moving to a new server registers a fresh installation while the old one keeps its slot. Deactivate the old site from your account dashboard and restart Strapi.
What if my server can’t reach the license service?
Premium features keep working for 14 days from the last successful check, so an outage on our side never interrupts you.
What happens when a license expires?
Premium features switch off, but your forms, submissions, and data are never touched — FormFlow keeps capturing submissions as the free tier.
I rebuild environments often (CI, preview deploys).
Each rebuilt environment registers as a new installation. Contact us and we’ll raise your activation quota.

A clear boundary between free and premium.

CapabilityFreeProBusinessAgency
Unlimited forms & submissions
Core field types, validation, inbox
File upload field
CSV / JSON export
Spam basics (honeypot, rate limit, v2)
One admin email notification
Conditional logic, multi-step, advanced fields
Advanced email, webhooks, integrations
Advanced spam (v3, Turnstile, hCaptcha, blocklist)
Analytics, Excel/PDF export, save & resume, white-label
GDPR toolkit, audit log, approvals, multi-language
Priority email support
Projects per licenceUnlimited13Unlimited

Add FormFlow to Strapi, then wire any frontend.

Requires Strapi v5. The plugin creates its own content types automatically — no migration. A paid license key is read server-side from one env var and degrades safely to Free with zero data loss.

Terminal
npm install @formflowjs/strapi-plugin-formflow
config/plugins.tsts
// config/plugins.ts
export default {
  formflow: {
    enabled: true,
  },
};
.env
# .env  —  optional, unlocks Pro / Business
FORMFLOW_LICENSE_KEY=your_key_here