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 Pro and Business — 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 per project when your workflows grow.

The free core is genuinely production-ready — not a trial. Pro and Business are gated at runtime by a license key; remove it and FormFlow keeps capturing submissions as the free tier.

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
Coming soon

Pro

Pro

Everything to ship serious forms.

$79per project · billed yearly
  • Everything in Free, plus —
  • Advanced fields & conditional logic
  • Multi-step / wizard forms
  • Autoresponders & branded email
  • HMAC webhooks + integrations
  • reCAPTCHA v3, Turnstile, hCaptcha
  • Analytics, Excel/PDF export, save & resume
Coming soon

Business

Business

For compliance-bound teams.

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

A clear boundary between free and premium.

CapabilityFreeProBusiness
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 support / SLA

Add FormFlow to Strapi, then wire any frontend.

Requires Strapi v5. The plugin creates its own content types automatically — no migration. A Pro or Business 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