Narrative Forms is the HTML-first WordPress form plugin. Instead of dragging boxes around a builder, you write plain, semantic HTML — or paste it straight from an AI like ChatGPT, Claude, or Gemini — and Narrative Forms turns it into a real form with fast AJAX submissions and stored, exportable data. Any input with a name attribute is saved. That is the whole idea: forms are just HTML, so there is no field-type registry, no lock-in, and no ceiling on what your form can be. It stays lightweight, loads its assets only on pages that actually contain a form, and is built to scale to millions of submissions. If you want a clean, fast, developer-friendly contact form or custom HTML form without the bloat of a heavy form builder, this is it.
Most WordPress form plugins lock you into a drag-and-drop builder and a fixed list of field types. If the builder does not offer a field, you cannot have it. Narrative Forms has no field registry — a field is simply an HTML element with a name. Need a multi-step layout, an unusual input, a custom widget, or markup your designer already wrote? Paste it in and it works. You keep full control of the markup, the classes, and the look. Drag-and-drop made sense years ago; today you describe what you want or paste what you already have. No builder, no bloat, and no fighting a clunky UI to recreate a form you can already picture.
Because forms are just HTML, any large language model can write one for you. Ask ChatGPT, Claude, Gemini, or your favourite AI for “a contact form with a name, email, a dropdown, and a file upload,” copy the HTML it returns, and paste it into Narrative Forms. There is no proprietary field format to satisfy, so whatever the AI generates simply works. The free plugin is completely AI-agnostic: bring your own model, paste the markup, ship the form. (Prefer it built in? AI-assisted generation is on the Narrative Forms Pro roadmap — for now, bring any model you like.)
The free plugin is a complete forms solution, not a teaser. You get:
Every output is escaped and every input is sanitised, following WordPress coding and security standards.
Narrative Forms is built for people who like control. Pre-fill fields with template variables such as {{ user.email }}, {{ get.utm_source | default:'direct' }}, or {{ site.name }}, using providers like user, URL parameters, post, site, and date — each with filters such as default, upper, lower, date, and truncate. On the front end, public JavaScript events (nrfm-submit, nrfm-submitted, nrfm-success, nrfm-error) let you push conversions to Google Tag Manager or your dataLayer, show a toast, or run any custom logic with a tiny nrfm.on() helper. Filters and actions at every decision point — form HTML, validation, webhook request arguments, and more — let you extend behaviour without forking the plugin.
Narrative Forms is engineered for sites that collect a lot of data. Submissions live in a dedicated, indexed database table — not bloated post meta — so lookups stay fast as the table grows. Repeated reads are cached, queries are paginated and bounded, CSV export streams in batches, and heavy work can run in the background so the front end stays quick. Whether you collect ten submissions a month or millions over time, the plugin is designed to stay lightweight and responsive.
Common uses include contact forms, lead capture, support requests, job applications, RSVPs, surveys, file submissions, registrations, and multi-field custom forms that a drag-and-drop builder cannot easily produce.
Narrative Forms Pro keeps the same lightweight, HTML-first core and adds the power features that busy sites and agencies need:
AI-assisted form generation — describe a form in plain language and have the HTML built for you inside WordPress — is on the Pro roadmap. Today, the free plugin already works with any AI you bring (see above). Learn more at https://narrative-forms.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=free
Most form plugins keep submissions locked in the admin. The Narrative Forms Frontend Submissions add-on turns the data you collect into front-end content with reusable Views — display any form’s submissions as a public directory, a testimonial wall, a photo gallery, a job board, an event timeline, product reviews, and more:
Collect with the form, publish with a View. Learn more at https://narrative-forms.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=free
This plugin may connect to external services in the following situations:
Cloudflare Turnstile (optional CAPTCHA)
https://challenges.cloudflare.com/turnstile/v0/api.js to render the widget.https://challenges.cloudflare.com/turnstile/v0/siteverify to validate the submission.https://www.cloudflare.com/website-terms/ • Privacy https://www.cloudflare.com/privacypolicy/Webhooks (optional, user‑configured)
https://example.com/webhook in the UI or docs is a placeholder; no data is sent there unless you explicitly configure it.