Free WordPress Form Builder Plugin
Build Responsive WordPress Forms Without the Frontend Bloat
BBA Form Builder combines a clean drag-and-drop editor with responsive layouts, AJAX submissions, email notifications, private entry management, restricted file uploads, and CSV export.
Published forms use lightweight CSS and vanilla JavaScript. No jQuery or external form service is required.
Free and open source · No jQuery · AJAX submissions · Entries and CSV export
A focused WordPress form builder for real-world websites
Create contact forms, lead forms, project inquiries, applications, feedback forms, and structured intake workflows without writing form markup. Add the fields you need, arrange them visually, configure the submission experience, and publish the result with a shortcode.
BBA Form Builder keeps the public side lean while giving administrators the practical tools needed to receive, organize, and export submissions inside WordPress.

Main features
Visual drag-and-drop builder
Add fields from the palette, reorder them on the canvas, and configure labels, placeholders, help text, defaults, choices, and unique meta keys.
Responsive column layouts
Build equal or asymmetric two-column layouts and three-column rows. Column containers control presentation only and never appear as entry data.
AJAX submission and validation
Submit without a page reload. Server-side validation returns useful feedback to the correct field and keeps messages inside the submitted form instance.
Flexible email notifications
Notify one or more recipients, customize sender details and subject lines, and insert submitted values with field placeholders.
Entries and CSV export
Store valid submissions as private WordPress entries, inspect complete records, monitor mail status, and export form data to CSV.
Uploads and spam controls
Restrict upload types and sizes while honeypot, timing, rate-limit, nonce, schema, and value checks reduce automated abuse.
Fields for simple and detailed forms
Start with a small contact form or combine standard, choice, advanced, layout, and content fields into a detailed workflow.
Standard
Text · Textarea · Number · Email · Phone
Choice
Dropdown · Radio buttons · Checkboxes
Advanced
Date · File upload · Hidden field
Layout and content
Responsive columns · Paragraph · Divider
See the complete workflow
Build the form, configure notifications, publish it on the frontend, and manage captured values from WordPress.


Popular ways to use BBA Form Builder
Contact and lead forms
Capture names, email addresses, phone numbers, messages, service interests, budgets, and timelines.
Applications and intake
Collect structured answers, dates, choice selections, longer descriptions, and approved document uploads.
Requests and feedback
Build quote requests, consultation requests, support forms, customer feedback, and internal business workflows.
File submission forms
Accept selected document and image formats while enforcing server-side MIME and size restrictions.
User documentation
This guide covers installation, form creation, publishing, entries, email delivery, privacy, file uploads, and common troubleshooting.
Requirements
- WordPress 6.5 or later
- PHP 8.0 or later
- JavaScript enabled for AJAX submissions
- A working WordPress mail transport for email notifications
1. Install and activate
In WordPress, open Plugins → Add New Plugin, search for BBA Form Builder, select Install Now, and then activate it. You can also upload the plugin ZIP manually. After activation, open BBA Forms in the dashboard.
2. Create a form
Select Create New Form, enter a descriptive name, and open the builder. Use a name you will recognize later, such as Contact Form, Project Inquiry, or Job Application.
3. Add and arrange fields
Open Add Fields, then click or drag field types onto the canvas. Reorder fields by dragging their cards. To create a multi-column row, add a Columns layout field, choose the arrangement, and drag normal input fields into its columns.
Columns are layout containers only. The fields inside them are saved and displayed as normal submission data.
4. Configure each field
- Field Label: the visible name above the input.
- Placeholder: optional guidance inside the input.
- Description / Help Text: supporting instructions near the field.
- Required Field: requires a valid value before submission.
- Default Value: pre-populates the field where supported.
- Field Meta Key: the unique storage and email-placeholder key.
- Custom CSS Classes: adds project-specific styling hooks.
- Choice Options: defines dropdown, radio, or checkbox values.
Keep every meta key unique. The builder generates unique keys automatically, including when a field is duplicated.
5. Choose the success action
Open Form Settings → General Settings. Set the submit-button label, then choose either a confirmation message on the current page or a redirect to a safe thank-you URL.
6. Configure email notifications
Open Form Settings → Email Notifications. Add one or more comma-separated recipients, a From name, a site-domain From address, an email subject, and an optional custom body.
Insert submitted values with a field meta key inside braces. For example, New inquiry from {text_1}. If the body is blank, the plugin sends a clean summary table of submitted values.
7. Save and embed the form
Save the form, open Form Settings → Embed & Shortcode, and copy the generated shortcode. Paste it into a WordPress Shortcode block, widget, or compatible template area.
[bbaform_form id="12"]
You can show multiple forms, or multiple instances of the same form, on one page. Validation and success messages remain inside the submitted instance.
8. Review and export submissions
Open BBA Forms → Entries, select a form, and review its submissions. Use the eye icon to open the complete record or select Export to CSV to download the selected form’s data.
Understanding email status
- Accepted: WordPress handed the notification to its configured mail transport.
- Failed: WordPress could not hand the message to its mail transport.
- Not configured: the form had no valid notification recipient.
- Not recorded: the entry predates mail-status tracking.
Accepted is not a delivery receipt. Inbox placement depends on the host or mail provider, sender authentication, reputation, and recipient filtering. For production sites, use authenticated SMTP or a transactional provider, publish SPF and DKIM records, add a monitored DMARC policy, and use a verified site-domain From address.
Submission data and privacy
Valid submissions are stored as private WordPress entry metadata. The plugin also stores the submitter’s IP address and browser user-agent string to support abuse investigation. Uploaded files are stored in the WordPress uploads directory.
Site owners should collect only necessary information, provide appropriate privacy and consent notices, restrict administrator access, define a retention policy, and protect database backups and uploaded files.
File upload defaults
Default accepted formats are JPEG, PNG, GIF, WebP, PDF, TXT, DOC, and DOCX. The maximum is 5 MB or the lower WordPress server limit. Developers can adjust these restrictions with the bbaform_allowed_upload_mimes and bbaform_max_upload_size filters.
Custom styling
Add custom CSS classes in a field’s options and style them through the active theme or a site-specific stylesheet. Use project-prefixed class names and test changes at desktop and mobile widths.
Troubleshooting
The form does not appear
- Confirm the plugin is active and the form is published.
- Check that the shortcode contains the correct numeric form ID.
- Use a Shortcode-compatible block or content area.
- Clear page, object, browser, and CDN caches.
The entry is saved but no email arrives
- Confirm the recipient is valid and check the entry’s Email Status.
- Review the spam folder and the mail provider’s activity log.
- Configure authenticated SMTP and verify SPF, DKIM, and DMARC.
- Remember that entry storage and email delivery are separate operations.
A file upload is rejected
- Confirm the file extension and detected MIME type are allowed.
- Confirm the file is no larger than 5 MB.
- Check whether WordPress or the server has a lower limit.
- Confirm the uploads directory is writable.
If a valid submission is temporarily rate-limited, wait at least one minute before trying again.
Designed with security in mind
Public submissions are checked with nonces, form-schema validation, field-level sanitization, upload restrictions, a honeypot, timing checks, and per-form/IP rate limiting. Administrative actions use WordPress capability checks and request verification.
CSV output neutralizes formula-like values to reduce spreadsheet formula-injection risk. Uploaded files are removed when their associated entries are permanently deleted through the plugin.
No plugin can replace secure hosting, updates, backups, least-privilege administration, authenticated email, and a suitable privacy policy. Use BBA Form Builder as one layer in a properly maintained WordPress website.
Frequently asked questions
Yes. BBA Form Builder is free, open-source software distributed under GPLv2 or later.
No. Published forms use dependency-free vanilla JavaScript.
Copy the generated shortcode from Form Settings → Embed & Shortcode and paste it into a WordPress Shortcode block or another shortcode-compatible area.
Yes. Each rendered instance receives its own container, so validation and success messages remain associated with the submitted instance.
Yes. Add a Columns layout field and place normal fields inside it. Equal, asymmetric, and three-column arrangements are available.
Text, textarea, number, email, phone, dropdown, radio, checkbox, date, file upload, hidden, paragraph, divider, and responsive columns are included.
Yes. Valid submissions are stored as private plugin-managed entries that administrators can review, export, or permanently delete.
Yes. Select a form on the Entries screen and export its submission data to CSV.
No. Accepted means WordPress handed the message to its configured transport. The receiving provider still decides whether to deliver, defer, reject, or classify it as spam.
Yes, when a File Upload field is added. Uploads are restricted by extension, detected MIME type, and size.
When the entry is permanently deleted through the plugin, its associated uploaded file is also removed.
Yes. It includes honeypot, timing, and rate-limiting checks plus server-side validation. It does not currently display a CAPTCHA challenge.
Yes. Choose the redirect option in General Settings and enter the desired thank-you URL.
Yes. Use the bbaform_allowed_upload_mimes and bbaform_max_upload_size WordPress filters.
Build your next WordPress form with less friction
Create responsive forms visually, publish them with a shortcode, and manage every valid submission from WordPress.