Notes on forms,
without the fluff.
Practical write-ups on collecting submissions, filtering spam, and publishing forms — no backend required.

October 16, 2026
WordPress Contact Form Without a Plugin: What Survives the Save
Paste a plain HTML contact form into a WordPress page and reload it — for a lot of accounts, part of it is just gone. Exactly which tags survive, which don't, and why, straight from WordPress's own filtering source.
Read more
October 12, 2026
Do You Need a Drag-and-Drop Page Builder? Seven Questions First
"Drag and drop" is the default assumption for a page builder. Seven concrete questions worth answering honestly first — what this one does without a canvas, and the one real case where it isn't the right fit.
Read more
October 8, 2026
Landing Page Creator: Four Real Pages From One Tool
The real test of a landing page creator isn't whether it has templates — it's whether unrelated pages built in it actually look like different things. Four worked examples, exact starting content included.
Read more
October 8, 2026
Page Builder Templates and Elements: Four Words, Four Different Jobs
"Template" means a different thing in nearly every page builder's marketing. Here's exactly what it means in this one, and the three other layers most page-builder copy quietly lumps into the same word.
Read more
October 5, 2026
Angular Contact Form: Two Official Ways, and the One That Isn't
Angular ships two different ways to build a form, and both lead to the same HttpClient gotcha before a contact form reaches NBForms. A third option skips the gotcha entirely.
Read more
October 4, 2026
Remix Contact Form: The Case Against Remix's Own Form Component
The obvious choice for a Remix contact form is the framework's own <Form> component. The docs themselves explain why that's built for a different job than posting to an external endpoint.
Read more
September 20, 2026
Gatsby Contact Form: Why Netlify's Form Detection Misses It
Netlify Forms looks like the free, zero-setup answer on a Gatsby site — until Netlify's own docs explain exactly which forms its build system can't see, and what the workaround costs to keep working.
Read more
September 6, 2026
File Upload Form Backend: 7 Mistakes That Lose Submitted Files
Adding a file field to a form backend looks identical to adding a text field — until quota, encoding, or naming assumptions quietly drop the attachment. Seven specific mistakes and their fixes.
Read more
September 6, 2026
Free Form Backend Plans Compared: NBForms, Formspree, Web3Forms, Basin
Every form backend advertises a free plan, and each one means something different — submission caps from 50 to 250/month, file uploads on some, 30-day retention on others. Compared directly.
Read more
September 1, 2026
Form Backend Integrations: Slack, Google Sheets, Zapier, and What They Actually Cost to Set Up
Six integrations, one submission each fires to independently. Here's exactly what each one needs, and the two-line reveal that three of them are the same integration wearing different names.
Read more
August 31, 2026
Framer Contact Form With No Backend — and a Redirect Setting to Leave Alone
Framer's Form component already speaks webhook and JSON. Here's exactly how to point one at NBForms, and one settings-page checkbox that will quietly break every submission if it's checked.
Read more
August 30, 2026
Webflow Form Backend: What the Custom Action Setting Actually Changes
Webflow's Form block already has a setting for this — no embed, no export required. Here's exactly what Custom Action does, and the one thing its own field picker can't add.
Read more
August 29, 2026
Nuxt Contact Form With No Server Route — And Why $fetch Isn't the Right Tool Here
Nuxt gives a contact form two built-in ways to reach a backend: a server route, or $fetch. The right answer for a simple form is neither — here's why, precisely.
Read more
August 28, 2026
Vue Contact Form Tutorial: A Backend in Nine Lines of Script
A Vue 3 contact form using nothing but script setup and a fetch call — plus the one thing the standard version of this snippet quietly leaves out.
Read more
August 27, 2026
Astro Form Backend: A Contact Form That Still Works With JavaScript Off
Astro ships zero JavaScript by default. Here's a contact form that respects that — working as plain HTML first, with AJAX feedback layered on top, not required.
Read more
August 26, 2026
React Form Submission Without a Server
Most React form tutorials assume a form library and a backend to submit to. This one needs neither — plus what actually happens when a browser POSTs straight to a third-party API.
Read more
August 25, 2026
Next.js Form Backend: A Contact Form With No API Route
Next.js makes it easy to reach for a Route Handler or Server Action for a contact form. Here's the version that needs neither — plus a fetch-specific gotcha most guides skip.
Read more
August 24, 2026
Landing Page Builder: A No-Code Editor Built Around Your Form
NBForms' landing page builder pairs eight templates and a block editor with the form it's publishing — no code, no drag canvas, no separate site to maintain.
Read more
January 29, 2026
Form Backend Spam Protection: Server-Side Filtering vs. CAPTCHAs
Server-side spam filtering catches automated submissions without a visitor ever seeing a checkbox. Here's how it differs from a CAPTCHA, and when you need both.
Read more
January 22, 2026
Hosted Form Page: How to Collect Submissions With No Website at All
A hosted form page gives a form its own working address without a website around it. What it actually is, how to publish one, and when it's the wrong tool.
Read more
January 15, 2026
HTML Form Backend: How to Add a Contact Form Without a Backend
A form backend is just an endpoint willing to accept the POST your <form> already sends. Here's exactly how that works, what it can't do, and when to reach for one.
Read more