

Build an HTML contact form by pasting markup, even an AI's: here a custom RSVP card with pill buttons and a star rating.
Narrative Forms is the HTML form plugin for WordPress. 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 form 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, nothing proprietary to lock you in, and no ceiling on what your form can be. If you want a clean, fast, developer friendly HTML form plugin, a simple contact form, or a custom form that a heavy form builder cannot easily produce, this is it. It stays lightweight, loads its assets only on pages that contain a form, and is built to scale to millions of submissions.
Most WordPress form plugins lock you into a drag and drop form builder and a fixed list of field types. If the builder does not offer a field, you cannot have it. Narrative Forms is an HTML form plugin with 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, so your contact form or custom form renders exactly the way you built it. 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. That is why people who outgrow a drag and drop form builder move to a real HTML form plugin.
Because forms are just HTML, any large language model can build 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 as an HTML form. That makes Narrative Forms an AI friendly form plugin: you bring your own model, paste the markup, and ship the form. The free plugin is completely model agnostic, so you are never tied to one AI. Prefer it built in? AI form generation that writes the HTML for you inside WordPress is on the Narrative Forms Pro roadmap. For now, the free HTML form plugin already works with any AI you paste in.
The free HTML forms plugin is a complete forms solution, not a teaser. Here is what every install includes:
Every output is escaped and every input is sanitised, following WordPress coding and security standards, so the plugin stays review safe and secure.
Narrative Forms is a general purpose form plugin, so the same HTML first workflow covers almost any form you need to build. Use it for a simple contact form, a lead capture form, a support request form, a job application, an RSVP, a survey, a registration form, a file upload form, or a custom form with a layout that a drag and drop builder cannot easily produce. Because a field is just an HTML element with a name attribute, you can mix text inputs, email fields, dropdowns, checkboxes, radio buttons, date pickers, textareas, and file upload fields in any structure you like.
Agencies and developers reach for this HTML form plugin when a client needs a form that does not fit a builder’s template: a multi column layout, a branded card, a stepper, a pricing calculator, or markup a designer handed over. You paste the HTML, give the fields names, and the form is live with AJAX form submissions, stored data, and CSV export. There is no template to fight and no field type you cannot add, which is the difference between an HTML form plugin and a drag and drop form builder.
It is also a great fit when you want to keep your stack lean. A single lightweight form plugin handles your contact form, your file upload form, and your custom forms, with email and webhook actions for routing, layered spam protection to keep out bots, and stored form submissions you can export to CSV whenever you need them. Whether you collect a handful of submissions a month or millions over time, the same plugin scales with you.
Narrative Forms is built for people who like control. Prefill 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 sit at every decision point, including the form HTML, validation, and webhook request arguments, so you can extend this HTML form plugin without forking it.
Narrative Forms is engineered for sites that collect a lot of data. Form submissions live in a dedicated, indexed database table rather than 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 form submissions a month or millions over time, this lightweight form plugin is designed to stay responsive. Scaling to millions describes the architecture, indexed storage, caching, and bounded queries, rather than a benchmarked guarantee.
Common uses include contact forms, lead capture, support requests, job applications, RSVPs, surveys, file uploads, 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 form generation, which writes the HTML for you from a plain language description, is on the Pro roadmap. Today the free HTML form plugin already works with any AI you paste in. 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 your form submissions 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, or product reviews, with instant search, pagination, single pages, per field privacy, and approval moderation. Frontend submission display is a paid add on that requires the free Narrative Forms plugin. 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
Narrative Forms uses the Appsero SDK to collect some telemetry data, but only after you confirm it. This helps us troubleshoot problems faster and make product improvements.
The Appsero SDK does not gather any data by default. It only starts collecting basic telemetry when you allow it through the admin notice. We collect the data to ensure a great experience for all of our users.
Integrating the Appsero SDK DOES NOT IMMEDIATELY start gathering data, and never without your confirmation.
Learn more about how Appsero collects and uses this data.
This plugin connects to external services only in these optional cases, and each is off until you enable or allow it.
https://challenges.cloudflare.com/turnstile/v0/api.js to render the widget; on submit, the server sends the Turnstile token, your secret key, and the visitor’s IP address to https://challenges.cloudflare.com/turnstile/v0/siteverify to verify it. Terms: https://www.cloudflare.com/website-terms/ Privacy: https://www.cloudflare.com/privacypolicy/https://api.appsero.com, plus an optional survey if you deactivate. No form submissions or visitor data are sent. Privacy: https://appsero.com/privacy-policy/