Everything you need to receive a message.
No time limit, no cap on forms, no cap on submissions. What follows costs nothing and will keep costing nothing.
A complete toolbox
Build
- Drag-and-drop builder, usable from the keyboard
- Twenty-one field types, from text to file upload
- Undo, autosave, preview
- Duplication, JSON import and export, nine templates
Guide the visitor
- Conditional logic on field visibility
- Multi-step forms with a progress bar
- Save an entry and resume it from a link
- Confirmation by message, redirect or page
Follow up
- Every submission stored and searchable
- One email notification per form
- Seven days of statistics
- JSON export of your forms
Protect
- Anti-spam without an external service
- Server-side revalidation of every field
- GDPR deletion and export of personal data
- Capability checks on every route
The right field, at the right moment.
A field appears only when the previous answer justifies it, and the form stays short for anyone who does not need the rest.
The rule is replayed server-side on arrival. A hidden field is not merely invisible: it cannot be required, and a value sent for it is not kept. That is what separates display logic from logic you can rely on.
The advanced rules in ProForm rules
- IfTotal above $500
- ThenShow the deposit field
- AndRecompute the amount server-side
- ThenNotify the right recipient
Written to last
What you do not see from the admin screen, but which decides what the plugin will be able to do in three years.
The server always has the last word
Conditional visibility, calculated fields, amounts due: everything is recomputed server-side, never taken on trust from what the browser sends. That is the difference between a contact form and a tool that takes money.
It works without JavaScript
The form submits, confirms and redisplays its errors in plain HTML. This is not a fallback forgotten in a corner: it is a tested path, on the same footing as the other.
Accessibility is not a checkbox
Properly labelled fields, announced errors, keyboard reordering. An automated audit runs on every change to the code and refuses regressions.
The domain layer depends on no WordPress function, schema migrations are versioned, and add-ons go through documented entry points rather than patches to the core.
See the extension pointsAll of it, without paying
Pro adds payments, signatures, appointment slots, case tracking and some twenty-seven other modules. It takes nothing away from the above.
- Free and open source
- No account required
- No runtime dependency
