Simple Form

A form builder for Craft CMS 5 that stays out of your way. Build a form in the control panel, drop one tag in a template, and every submission lands as a native Craft element — searchable, exportable, and permission-controlled like everything else in your site.

The Solo edition is free. Unlimited forms, unlimited submissions, 22 field types, notifications, spam protection, and full multi-site translation. No trial, no submission cap, no watermark. Upgrade to Standard when you need the advanced stuff.


Built for Craft, not ported to it

  • Submissions are real elements. They use Craft's element index — sources, filters, search, bulk actions, exporters, trash and restore. Not a bespoke table with a bolted-on UI.
  • Genuinely translatable. Titles, descriptions, field labels, options, validation messages, notification bodies and confirmation messages all translate per site, with a configurable propagation method. The control panel itself ships in eight languages.
  • Server-side authority. Every rule you set — required fields, conditional logic, option membership, availability windows, per-user limits — is enforced in PHP on submit. The client-side layer is a convenience, never the gate.
  • A real developer surface. Twig and PHP APIs, a GraphQL schema with a committed SDL, lifecycle events for modifying or cancelling behaviour, front-end JavaScript hooks, console commands, and a documented public-API stability contract.

Features

Form building

Drag-and-drop builder with multi-column rows, a searchable field palette, and keyboard and touch reordering — no mouse required. Multi-step forms with progress and per-step validation. Conversational mode renders one question per screen. Save & continue later gives visitors a resumable link. Passive partial capture records abandoned attempts behind a consent gate. Start from a stencil, duplicate an existing form, or share a form at its own URL or as an embed.

33 field types

Text, email, URL, textarea, number, phone with dial-code validation, date, time, date & time, hidden with dynamic defaults, select, checkbox, radio, rating, opinion scale/NPS, GDPR consent with an auditable consent record, name and address (with optional autocomplete), file upload, signature, calculation, repeater, payment, entry/category/tag/user/asset relations, and heading/divider/HTML/text/callout layout blocks.

Conditional logic

Show, hide, or conditionally require any field based on what's already been answered. Logic jumps branch a multi-page form to a non-adjacent step. Conditional submit messages swap the confirmation text based on the submitted values. Delete a field and the builder tells you which rules depended on it, rather than silently dropping them.

Spam protection

Honeypot, per-IP rate limiting on by default, and your choice of reCAPTCHA, hCaptcha, or Cloudflare Turnstile. Add Akismet scoring and keyword/email/IP denylists, each set to either flag or block. Flagged submissions land in a review queue — approving a false positive re-fires the notification and integrations it was holding back.

Notifications

Any number of per-form emails, each with its own recipient, subject, reply-to, CC/BCC and body. Recipients can be a fixed address or a form field, which is all an autoresponder needs. Gate each one behind a send condition, translate bodies per site, attach a generated PDF of the submission or the visitor's uploaded files, and trial it with a test send. Every send is logged with its status, and any of them can be resent.

Integrations

Push submissions to Slack, Discord, Mailchimp, ActiveCampaign, HubSpot, Pipedrive, Google Sheets, any webhook, or straight into a Craft entry or user. Dispatch runs on the queue with retries, so a slow third party never delays or fails a visitor's submission. Every attempt is logged, and any dispatch can be resent by hand. Write your own connector against a documented interface.

Payments

Collect a fixed or field-driven amount on submit through Craft Commerce's embedded gateway form. Pay-to-submit means a declined card saves nothing. Notifications and integrations are held until the payment settles, then released automatically. Coupons support percentage or fixed discounts with usage limits and expiry.

Submissions and reporting

A dashboard showing activity over time, what needs attention, and per-form links. Analytics with status breakdowns and spam-versus-legitimate splits. Quiz scoring with grade bands, and per-question survey aggregates. A configurable approval workflow with your own stages and transitions. Immutable per-submission field snapshots, so renaming or deleting a field later never corrupts what older submissions show. CSV export with column selection, streamed in batches for large datasets.

Privacy

Three-state IP capture — full, anonymized, or off. Retention windows for submissions, spam, logs, drafts and partials, pruned on garbage collection, deleting or anonymizing in place. Console commands to export or erase everything tied to an email address, for subject-access and erasure requests.

Developer tooling

Version-controlled form definitions in config/, deployed with a single console command that updates forms in place without breaking existing submissions. Portable, secret-free JSON import and export. An MCP server so AI agents can inspect and manage forms over JSON-RPC. Scaffolding generators and copy-paste examples for custom field types, integrations, captcha providers and themes.


Solo vs Standard

Solo (free)Standard
Forms and submissionsUnlimitedUnlimited
Field types22All 33
Multi-site, per-site translation
Email notifications + autoresponders
Notification log with resend
Honeypot, rate limiting, CAPTCHA
Availability windows, quotas, per-user limits
CSV / JSON / XML export
Trash & restore, submission editing
Dashboard, analytics, survey reports
Attribution / UTM capture
Address autocomplete
Submission approval workflow
Webhook + Craft entry/user integrations
Import / export and forms-as-code
Advanced fields — signature, payment, rating, opinion scale, calculation, repeater, element relations
Conditional logic
Multi-page forms
Save & continue later
Conversational render mode
Quiz scoring
Passive partial capture
Akismet + denylists
Automated retention
PDF attachments
Audit log
Commerce payments + coupons
Slack, Discord, Mailchimp, ActiveCampaign, HubSpot, Pipedrive, Google Sheets
MCP server

Upgrading and downgrading is safe

The edition gate governs authoring, never the visitor-facing runtime. A form built on Standard keeps rendering and accepting submissions after a downgrade to Solo — its conditional logic still evaluates, its pages still navigate, its advanced fields still validate. Visitors see no difference.

On Solo you simply can't add more: no new advanced fields, no turning on conditional logic where it wasn't on before. Everything already built is preserved when you save, and the editor tells you plainly which features are in use. Spam protection and retention keep running so data hygiene never regresses. Go back to Standard and everything resumes.

Upgrading from Solo costs the price difference, not a repurchase, and carries everything over untouched.


Requirements

Craft CMS 5.x and PHP 8.2 or later. Runs on MySQL 8 and PostgreSQL 16. Craft Commerce is an optional dependency, needed only for the Payment field.

Installation

composer require anvildev/craft-simple-form
php craft plugin/install simple-form
Packageanvildev/craft-simple-form
Repositoryhttps://github.com/anvildevxyz/craft-simple-form
Versionv1.1.0
Edition handlessolo and standard (case-sensitive)
PricingSolo $0 · Standard $39

Standard

Pro

Plus $19/year after one year.

Installation Instructions

To install this plugin, copy the command above to your terminal.

Reviews

This plugin doesn't have any reviews.

Active Installs
2
Version
1.1.0
License
Craft
Compatibility
Craft 5
Last release
July 27, 2026
Activity (30 days)
0
Closed Issues
0
Open Issues
3
Merged PRs
0
Open PRs