struxr.dev
Web app

NormForms - Forms That Just Work, Spam That Doesn't

We built a form backend for client sites: one URL, invisible spam filtering, $0 to start. Live at normforms.com.

Visit the live site →

Contact forms are a solved problem that nobody has solved well.

The form itself is trivial. A few input fields, a submit button, a textarea. Five minutes of HTML. The hard part is everything behind it: where do submissions go, how do you stop spam, how do you get notified, and how do you do all of that without adopting a $40/month platform that wants to be your entire marketing stack.

We’ve managed forms on client sites for years. The cycle repeats. Site launches, form works, spam arrives within the week. Then you’re picking between bad options: a CAPTCHA that punishes real visitors, a WordPress plugin that breaks on the next core update, or a form SaaS that charges enterprise prices for what amounts to forwarding an email.

The actual problem

Spam is the obvious one. A public form attracts bots within days. But the tooling problem is worse.

Most form services want to be your form builder. Drag-and-drop editors, conditional logic, payment collection, file uploads, team seats. That’s a lot of product to maintain, so they charge accordingly. $30 to $50 a month for something that is, at its core, receiving a message and sending an email.

On the other end there’s self-hosted solutions. PHP mail(), a custom endpoint, a serverless function. Those work until you need spam filtering, submission storage, or reliability guarantees. They’re also one more thing to maintain per client, per site.

We wanted something between “build it yourself every time” and “pay for forty features you’ll never touch.”

The name

NormForms. Forms that are normal. The .com was available so here we are. Searching for .com domains with the word “form” in it made us rethink this entire project. Oh well. We ball. Logo and icon made in Affinity, same as PayPolka. The icon is a little face because every form submission is a person trying to talk to you, and the service should treat it that way.

LOGO

NormForms logo

ICON

NormForms icon

What we built

NormForms is a form backend. You sign up, get a URL, point your HTML form’s action attribute at it. No JavaScript to embed, no iframes, no widget to style. Your form stays in your HTML, styled however you want.

Submissions hit the endpoint, get filtered for spam, get stored in a dashboard, and the real ones get emailed to you. Spam filtering runs silently: honeypot fields, origin locking, rate limiting, and Cloudflare Turnstile when you want the extra layer. No CAPTCHA grids asking visitors to click every photo with a bicycle in it.

Each form also gets a hosted page with its own URL and QR code. Useful for print materials, trade shows, or anywhere you need a form without a website to put it on.

Why it exists

Every Struxr client site has a contact form. Managing those forms across different platforms, plugins, and hosting setups was busywork we kept repeating. NormForms started as an internal tool to stop doing that. One endpoint per form, one dashboard, one spam filter, done.

Every form on every Struxr client site now runs through NormForms. It replaced a patchwork of plugins and custom endpoints with one system we control. That’s when we decided to open it up.

Pricing

Free for 50 submissions a month. $7 for 200. $15 for 2,000. $50 for 20,000. Unlimited projects on every plan.

Contact forms shouldn’t cost what CRM software costs. Most small business sites get a handful of real inquiries a week. The free tier covers that. The paid tiers exist for agencies and businesses running forms across many sites.

NormForms is live at normforms.com.