Why I Built Core Forms?
I’ve been building WordPress sites since 2009. Close to a thousand client projects. And for the last few years, every single form plugin installation has annoyed me.
Not because the plugins didn’t work. They did. But because a simple contact form shouldn’t need 47 JavaScript files, a drag-and-drop builder with 200 field types, and a $199/year subscription. That’s not a form plugin. That’s a SaaS product wearing a WordPress costume.
So I built my own. It’s called Core Forms, and it does exactly what a form plugin should do. Nothing more, nothing less. $59, once. Lifetime updates. Every feature included. Currently at v3.5.0 with theme native design, polls, fullscreen typeform like forms, submission workflows, conditional actions, and a REST API.
Let me explain why.
Table of Contents
The Problem with Modern Form Plugins
The WordPress form plugin market has a bloat problem. And I don’t mean “a little extra code.” I mean full-on feature creep that’s been building for a decade.
Take WPForms. Great plugin. I’ve recommended it to clients for years. But the Lite version loads 3 CSS files and 5 JavaScript files on every page where a form exists. The Pro version adds conditional logic scripts, payment integrations, geolocation libraries, and entry management code. Most of that code sits there doing nothing on a simple contact form.
Gravity Forms does the same thing. So does Fluent Forms. So does Ninja Forms.
The pattern is always identical. Start with a form plugin. Add a visual builder. Add conditional logic. Add payments. Add user registration. Add quizzes. Add surveys. Before you know it, your “form plugin” is trying to be an entire application platform.
And all of that costs performance. I measured it on a client site last year. A single WPForms contact form added 127KB of JavaScript and 34KB of CSS to the page. The form itself was three fields: name, email, message.
That’s like shipping a forklift to deliver a letter.
What I Actually Needed
When I sat down to think about what I wanted from a form plugin, the list was short:
Two ways to build forms. A clean visual builder for quick forms, and a code editor for when I want full HTML control. Most plugins force you into one or the other. I wanted both. The visual builder handles 80% of use cases… drag fields in, rearrange them, done. But when I need custom markup, a conditional layout, or something the builder can’t express, give me a textarea where I can write my form HTML exactly how I want it.


Lightweight output. The plugin should add the absolute minimum JavaScript and CSS needed to handle AJAX submission and basic validation. Nothing else. If the form doesn’t use file uploads, don’t load the file upload script. If I’m not using reCAPTCHA, don’t load the reCAPTCHA library.
All features included. I’m tired of the “free core + paid add-ons” model. You want file uploads? $49/year add-on. Webhooks? Another $39/year. Submission storage? Pro plan at $199/year. A form plugin shouldn’t nickel-and-dime you for basic functionality.
Developer-friendly architecture. Clean namespace (Core_Forms). PSR-4 autoloading. cf_* function prefix. Hooks for everything. If I need to customize how submissions are processed, I should be able to hook in without hacking core files.
That’s it. Four requirements. No AI form generation. No payment processing. Just forms that work, load fast, and don’t cost a subscription.
The Fork That Started Everything
Core Forms didn’t start from scratch. It’s a fork of HTML Forms by ibericode (the team behind MC4WP, the Mailchimp for WordPress plugin). I’d been using HTML Forms on personal projects for years because it was the only form plugin that shared my philosophy: write your own HTML, submit via AJAX, minimal footprint.
But HTML Forms had limitations. So I forked it. Rebuilt the namespace. Added a visual drag-and-drop builder. Added six spam protection methods. Built a fullscreen mode for Typeform-style forms. Added a polls system. Built integrations for MailerPress, Mailchimp, Emailit, and Fluent Cart. Shipped it as Core Forms v2.0.
Ten releases later, we’re at v3.5.0. The plugin is 104 files, a 280KB zip, and it includes everything you’d expect from a $199/year plugin. For $59. Once. Unlimited Sites.
What Core Forms Actually Includes
Every Core Forms license includes all of this. No tiers. No add-ons.
Visual form builder + code editor. You get both. The visual builder lets you drag and drop 12 field types: Text, Email, Textarea, Dropdown, Checkbox, Radio, Number, Phone, URL, Date, Hidden, and Submit. Switch to code view anytime for raw HTML control. Use the Gutenberg block or [cf_form] shortcode to embed forms anywhere. AJAX submission by default, with a fallback for JavaScript-disabled browsers.

Email notifications. Customizable email templates with data variables like [all], [all:label], [CF_FORM_ID], and [CF_FORM_TITLE]. Send to multiple recipients. Auto-responder emails to the person who submitted. Works with Emailit for reliable delivery if you don’t want to mess with SMTP.
Submission management. Every submission is saved to the database with a status workflow: new, read, replied, archived. Browse, search, filter by status, and export as CSV. The REST API (added in v3.5.0) gives you GET, PATCH, and DELETE endpoints for submissions, so headless setups and custom dashboards work too.
File uploads. Let users attach files to their submissions. Files go into the WordPress media library with proper sanitization and size limits.
Webhooks. Send submission data to any external URL via POST. JSON or form-encoded. Custom authentication headers. Connect to Zapier, n8n, Make, or hit any API endpoint directly.
Conditional actions. Skip specific actions based on field values. If someone selects “General inquiry” instead of “Project request,” you can skip the webhook that pings your project management tool. This shipped in v3.5.0 and it’s one of those features that sounds small but saves real headaches.
Six spam protection methods. Honeypot field (enabled by default), Google reCAPTCHA v3, hCaptcha, Cloudflare Turnstile, Akismet integration (with whitelist keywords to bypass false positives), and a math CAPTCHA. Use one or layer them.
Fullscreen forms. A Typeform-style one-question-at-a-time interface. Light and dark themes. Slide, fade, or scale animations. Progress bar. Keyboard navigation. Custom CSS and JS injection.

Core Polls. A complete polling system with its own post type, AJAX voting, multiple-choice support, vote deduplication (by IP, user, or cookie), end dates, and live results.

Integrations. Mailchimp (via MC4WP) – ported from HTML Forms, MailerPress (with field mapping, tag assignment, and double opt-in), Akismet, Emailit (both sending and subscriber management), and Fluent Cart. All load conditionally. If the partner plugin isn’t active, the integration code never touches memory.
50+ hooks. Filters and actions for form rendering, processing, validation, email content, webhook requests, admin UI, and more. Every major operation has a hook.
All of this for $59. Once. I didn’t build Core Forms to compete with WPForms on feature count. I built it to prove that a form plugin can include everything you need without becoming a bloated mess.
Who Core Forms Is For (And Who It’s Not For)
I’ll be honest about this. Core Forms isn’t for everyone.
It’s for you if:
You want a lightweight form plugin that doesn’t slow your site down. The visual builder handles most forms in minutes, the code editor gives you full control when you need it. Both approaches produce clean, minimal output.
You care about performance. If you’ve spent time optimizing your Core Web Vitals and you’re annoyed that form plugins undo half your work… Core Forms is the fix.
You’re a developer building client sites. The hook system means you can customize everything without touching plugin code. And at $59 per site with lifetime updates, the economics make sense across a portfolio.
You’re tired of subscriptions. One payment. Done. No annual renewal emails. No “your license has expired” warnings. No features disappearing because you forgot to renew.
It’s not for you if:
You need built-in payment processing. Core Forms handles data collection, not transactions. Use WooCommerce or a dedicated payment plugin for that.
You need multi-page forms with complex conditional logic trees. Core Forms has conditional actions (skip actions based on field values), and you can build conditional visibility with HTML/JavaScript in code view. But it’s not the drag-and-drop conditional logic engine you’d find in Gravity Forms or WPForms Pro.
I’d rather be upfront about these tradeoffs than pretend Core Forms does everything. It doesn’t. It does forms. And it does them fast, clean, and without the overhead.
The Economics of “Free” Form Plugins
One thing that drives me crazy: the idea that Contact Form 7 is “free.”
Contact Form 7 is free to install, yes. But it generates useless code and unstyled HTML that you need to write CSS for. It sends emails that end up in spam because it doesn’t integrate with SMTP plugins cleanly. It has no submission storage, so if an email gets lost, the data is gone forever. No file uploads without a third-party add-on. No webhooks without Zapier or a custom plugin.
By the time you’ve patched Contact Form 7 into something usable, you’ve spent 2-3 hours of developer time. At $100/hour, that’s $200-300 of work. For each site.
WPForms Lite is the same story. Free, but limited to basic fields. Want file uploads? $49.50/year. Webhooks? $49.50/year. Submission storage? $49.50/year. The “Pro” plan that includes everything is $199.50/year.
Over three years, WPForms Pro costs $598.50. Core Forms costs $59. Same features. Less bloat. No renewal.
I’m not saying WPForms is bad. Their builder is excellent for non-technical users who want guided hand-holding. But if you’re a developer who values performance, you’re paying a premium for overhead you don’t need.
How I Use Core Forms on My Own Sites
On gauravtiwari.org, gatilab and other client sites, every form runs on Core Forms. The contact form is five fields of HTML, submits via AJAX, stores submissions in the database, and sends me an email notification via Emailit. It adds less than 8KB of JavaScript to the page.
For client projects at Gatilab, I use Core Forms with webhooks to send form data directly to clients’ CRMs. The webhook sends a JSON payload on every submission. No Zapier middleman. No extra monthly cost. The conditional actions feature means I can route different form responses to different endpoints based on what the user selected.
For service intake forms, I use the visual builder to set up detailed questionnaires: business name, website URL, service area, budget, goals. Drag the fields in, hit save. Takes about five minutes to build a form that would take 20 minutes to code by hand.
For content sites, I use the polls feature to add engagement without installing a separate polling plugin. One poll question, rendered inline with AJAX voting. Adds almost nothing to page weight.
And for landing pages where I want that Typeform look? Fullscreen mode. Dark theme, slide animation, progress bar. Clients love it. They don’t know it’s a WordPress form. They think I built something custom.
The submission status workflow has been surprisingly useful too. New submissions come in, I mark them as “read” when I’ve seen them, “replied” when I’ve responded, “archived” when they’re done. It’s a tiny CRM built into the form plugin. Didn’t think I’d use it much. Now I use it daily.
Why One-Time Pricing
People ask me why I don’t do subscriptions. The answer is simple: I don’t think a form plugin justifies recurring payments.
Subscriptions make sense for services that have ongoing costs. Hosting. Email delivery. Cloud storage. These things cost the provider money every month, so it’s reasonable to charge monthly.
A WordPress plugin that runs on your server, using your resources, with no ongoing infrastructure cost to me? There’s no justification for annual fees beyond “because the market will pay it.”
I priced Core Forms at $59 because that covers my development time and gives users a fair deal. You pay once. You get updates forever. If I build a v4 with major new features, you get that too. No upgrade pricing. No “legacy plan” nonsense.
If this model doesn’t scale to millions in revenue… I’m fine with that. I built Core Forms because I needed it. Selling it to other developers who think the same way is a bonus.
What’s Next
Core Forms v3.5.0 shipped with submission status workflows, conditional actions, a full REST API for submissions, and Akismet whitelist keywords. The roadmap from here:
- Conditional field visibility. Show/hide fields based on other field values, handled entirely client-side. The groundwork is there with conditional actions. This is the next logical step.
- More integrations. FluentCRM, ConvertKit, and ActiveCampaign are on the list. Same conditional loading pattern as the existing integrations.
- Form templates library. Pre-built HTML templates you can insert and customize. Contact forms, feedback forms, intake questionnaires, event registration. One click to drop in, then tweak.
Every release ships to the WordPress plugin directory and to the product page. If you’re a developer who shares this philosophy… that WordPress plugins should be lightweight, fairly priced, and developer-friendly… give it a try.
The WordPress ecosystem doesn’t need another form plugin with 500 features and a $299/year price tag. It needs plugins that do one thing well, load fast, and respect both the user’s wallet and their site’s performance.
That’s Core Forms.
FAQs on Core Forms
What is Core Forms?
Core Forms is a lightweight WordPress form plugin forked from HTML Forms by ibericode. It includes a visual drag-and-drop builder, a raw HTML code editor, file uploads, webhooks, submission storage with status workflows, six spam protection methods, fullscreen Typeform-style forms, polls, and integrations with MailerPress, Mailchimp, Emailit, and Fluent Cart. The plugin is 280KB, runs on WordPress 6.0+ with PHP 7.4+, and costs $59 once with lifetime updates.
How much does Core Forms cost?
Core Forms costs $59 as a one-time payment. There are no annual subscriptions, no add-on fees, and no tier restrictions. Every feature is included in that single price, and you get lifetime updates. For comparison, WPForms Pro costs $199.50/year ($598.50 over three years) for similar functionality.
Does Core Forms have a visual form builder?
Yes. Core Forms includes both a visual drag-and-drop builder and a raw HTML code editor. The visual builder supports 12 field types: Text, Email, Textarea, Dropdown, Checkbox, Radio, Number, Phone, URL, Date, Hidden, and Submit. You can switch between visual and code view at any time. The code editor shows a live preview alongside your HTML.
What spam protection does Core Forms offer?
Core Forms includes six spam protection methods: honeypot field (enabled by default), Google reCAPTCHA v3, hCaptcha, Cloudflare Turnstile, Akismet integration with whitelist keywords to reduce false positives, and a math CAPTCHA. You can use a single method or layer multiple methods together for stronger protection.
Can Core Forms replace Contact Form 7 or WPForms?
For most use cases, yes. Core Forms includes submission storage, file uploads, webhooks, email notifications, and spam protection out of the box. These are features that Contact Form 7 lacks entirely and WPForms locks behind paid tiers. The main exceptions: if you need built-in payment processing or complex multi-page conditional logic trees, WPForms Pro or Gravity Forms are still better fits.
Does Core Forms work with the WordPress block editor?
Yes. Core Forms includes a native Gutenberg block for inserting forms directly in the block editor. You can also use the shortcode to embed forms in posts, pages, widgets, or any shortcode-compatible area. Forms submit via AJAX by default with a fallback for browsers with JavaScript disabled.
What is the fullscreen form mode in Core Forms?
Fullscreen mode turns any Core Forms form into a Typeform-style experience. It displays one question at a time with a progress bar, step counter, and keyboard navigation. You can choose between light and dark themes, and pick from slide, fade, or scale animations. It also supports custom CSS and JavaScript injection for further styling. No separate plugin or Typeform subscription needed.
Does Core Forms have a REST API?
Yes, as of v3.5.0. Core Forms includes REST API endpoints for submissions with GET, PATCH, and DELETE methods. This makes it compatible with headless WordPress setups, custom admin dashboards, and third-party integrations that need to read or manage form submissions programmatically.