Things I figured out the hard way.
Forms, integrations, performance, deliverability, the occasional rant. Written by a WordPress practitioner who spent too long getting these wrong so you don't have to.
-
GDPR consent pattern for WordPress forms
Most form GDPR setups are theater. Here's the pattern that holds up to a real audit, with the consent fields, the storage, and the audit trail.
Read → -
Gutenberg block vs shortcode for forms
Both work. They're not equivalent. Here's the rule for when to use the Core Forms block versus the shortcode, with the actual tradeoffs.
Read → -
Migrating from Contact Form 7
Contact Form 7 ships on millions of WordPress sites. Migrating off it is mostly painless. The 5 things that aren't are worth knowing in advance.
Read → -
Save-and-resume on long forms
Save-and-resume turns a 30-field application form from a 28% completion rate into a 65% one. Here's the data, and the implementation.
Read → -
Webhooks vs Zapier vs native integrations
Three ways to wire form submissions to external tools. Each has a sweet spot. Picking the wrong one costs money or maintenance time.
Read → -
25 Core Forms data variables, explained
Core Forms ships 25+ template variables for emails, redirects, and webhooks. Most users only know three. Here's the full reference.
Read → -
Multi-step forms: when they help vs hurt
Multi-step forms boost completion on long forms and tank conversion on short ones. The decision is research, not preference. Here's the rule.
Read → -
File uploads on WordPress forms
File uploads are a paid add-on in most WordPress forms plugins. Here's why they shouldn't be, and the four things you need to get them right.
Read → -
Forms for agencies: handing off to clients
How to set up form submissions so your agency clients can manage their own leads, without giving them WordPress admin access. The full pattern.
Read → -
Lean WordPress forms for course creators
Course landing pages live or die on funnel speed. Here's the form stack I use on course sites where every kilobyte counts.
Read → -
When NOT to use a WordPress forms plugin
There's a real ceiling where forms plugins (any of them, including Core Forms) become the wrong tool. Here's where the line is and what to use instead.
Read → -
Headless WordPress forms with Core Forms — the calm way to embed a WP form on Astro, Next.js, Vue, or plain HTML
Use WordPress as a form backend and render the form anywhere else — Astro, Next.js, plain HTML, mobile webview. Three integration modes, one API key, full spam protection.
Read → -
WP_DEBUG every form submission
Most form-related bugs are silent failures. Turning on WP_DEBUG plus Core Forms' email log catches them in 30 seconds. Here's the setup.
Read → -
100+ WordPress forms, no form builder
After a hundred-plus client form deployments, the visual builder is a tool I've stopped reaching for. Here's what I do instead, and why it scales.
Read → -
Why I bundle every feature into the price
Most WordPress plugins charge extra for file uploads, webhooks, and Mailchimp. Core Forms doesn't. Here's the math, and the philosophy.
Read → -
Why your form emails land in spam
Form notifications in the spam folder is a deliverability problem, not a forms plugin problem. Here's the four-step fix that actually works.
Read → -
Akismet isn't enough — what to layer
Akismet is the WordPress default for spam. But it's not a complete solution. Here's the four-layer setup I run on production sites.
Read → -
reCAPTCHA v3 vs Turnstile vs hCaptcha
Three captchas, three privacy stories, three setups. After running all three on production sites for a year, here's what holds up.
Read → -
Send WhatsApp from a WordPress form
WhatsApp notifications on form submission are coming in Core Forms 4.1. Here's how to do it today via webhook + Meta Cloud API, and the gotchas.
Read → -
FluentCRM vs HubSpot vs Mailchimp for forms
Three CRMs, three pricing models, three ways form leads land. After running all three on client sites, here's the actual decision matrix.
Read → -
From Google Sheets to Airtable for forms
Google Sheets is the lazy default for form submissions. After a year of clients hitting its limits, I moved everything to Airtable. Here's why.
Read → -
A fast Mailchimp signup form for WordPress
Mailchimp's official embed code is 90 KB on a fresh page. Here's how to wire a Mailchimp signup form that's 4 KB and still does double opt-in.
Read → -
Use Slack as your contact form inbox
Form submissions in your team's Slack channel beat email by a wide margin. Here's how to wire it up and what message format actually works.
Read → -
Send form submissions to Notion in 3 min
Pipe leads, bug reports, and feedback into a Notion database with field mapping. The full setup, with the screenshots and the gotchas.
Read → -
Conditional form fields without drag-and-drop
How to build show/hide field logic in WordPress forms using HTML data attributes. No builder, no logic graph, no plugin upsell.
Read → -
Stop the forms-plugin stylesheet bloat
Most forms plugins force-load 30-100 KB of CSS on every page, whether the page has a form or not. Here's the audit, and the fix.
Read → -
The honest case for AJAX form submission
AJAX submission is the default in every modern forms plugin. But should it be? When it helps, when it hurts, and how to switch modes.
Read → -
Load a WordPress form without 200 KB of JS
A breakdown of what's in a typical forms plugin's frontend bundle, and how to cut it without losing anything important.
Read → -
Your contact form doesn't need a builder
After 15 years of building forms, I stopped using drag-and-drop builders. Here's the math on what you actually lose, and what you get back.
Read →
Stop reading. Ship a form.
All these notes are from running Core Forms on real client sites. Use code
CFLAUNCH for 20% off either plan.