The ShipMyForm blog

Forms, without a backend

Practical, code-first guides on adding forms to static sites, stopping spam, routing submissions to email, and choosing a form backend.

Latest guides

Form design & UX

Form UX: The Decisions That Actually Change Completion Rates

Most form UX advice is decoration. These are the decisions that measurably change whether people finish: field count, labels, validation timing, error copy, and letting the browser help.

12 min read
Static site forms

How to Submit a Form with JavaScript fetch() (and Send It to Your Email)

The vanilla-JS pattern for submitting a form without a page reload — intercept submit, fetch() the data, and render success and per-field errors from the JSON response.

4 min read
Automations & integrations

Send Form Submissions to Telegram (Without Leaking Your Bot Token)

A Telegram bot token in front-end JavaScript is readable by anyone who opens devtools, and it grants full control of the bot. The fix is the same either way — something server-side holds the token — and that is what a form backend is.

5 min read
Comparisons & alternatives

Forminit Alternative (formerly Getform): An Honest Comparison

Forminit counts forms. ShipMyForm counts submissions. That single difference decides which is cheaper for you, and it matters more now that Forminit's Pro tier allows ten forms instead of fifteen.

5 min read
Spam protection

Why Real Form Submissions Get Marked as Spam (and How to Get Them Back)

Everyone tunes a form filter by asking how much spam it caught. The number that matters is the one you cannot see — the enquiries that never arrived. Here is what causes them, including a mistake we shipped ourselves.

6 min read
Comparisons & alternatives

Web3Forms Alternative: ShipMyForm vs Web3Forms (2026)

Web3Forms is what most AI builders emit by default, and it is a good service. The free tiers are nearly identical, so the choice turns on two specific things rather than a feature-count contest.

4 min read
Static site forms

Adding a Working Contact Form to a Google AI Studio App

Unlike v0 or Bolt, AI Studio gives you a real server on Cloud Run. That makes the contact form question different, and more interesting: you could build it, and here is the honest accounting of what that costs.

4 min read
Forms to email

How to Send a Confirmation Email to Whoever Filled In Your Form

Sending a confirmation to the submitter looks like a one-line change, and the usual shortcut quietly builds an open relay. Here is the dangerous version, why it is dangerous, and the rate limits any correct implementation needs.

5 min read
Automations & integrations

How to Send Form Submissions to Discord

Get each submission into a Discord channel as a clean embed. Covers the managed connector, the free webhook + automation route, and the embed limits that silently truncate long messages.

7 min read
Spam protection

Why Your Contact Form Suddenly Started Getting Spam

It is not personal and it is not targeted: a crawler found a <form> tag. Here is how that happens, why it starts on an ordinary Tuesday, and what each kind of spam is actually trying to get out of you.

7 min read
Form design & UX

What Your Contact Form Sounds Like to a Screen Reader

Most form accessibility advice is a list of attributes. This is the other way round: what a screen reader actually says as someone moves through your form, and which markup decisions change it.

6 min read
Static site forms

How to Accept File Uploads on an HTML Form (Without a Backend)

A file input on a static site uploads nothing by itself. Here is the markup that works, the size and type limits worth enforcing on both sides, where the bytes end up, and a dated comparison of what the hosted form services allow.

6 min read
Concepts & fundamentals

What "AI-Native" Actually Means, and How to Test the Claim

The phrase has come to mean "we added a chatbot". Here is a definition with five tests you can actually apply to a vendor, and our own product scored against it — including the two tests it does not pass.

9 min read
Automations & integrations

How to Send Form Submissions to Notion or Airtable (Without Zapier)

Notion and Airtable are where teams triage leads and requests. Here is how to land every form submission there directly: the managed connectors, how fields map to properties and columns, and a free webhook route if you prefer to own the code.

5 min read
Form design & UX

Form Validation UX: When to Validate, and Error Messages That Actually Help

Validation timing and error copy decide whether a form feels helpful or hostile. The three moments to validate, a formula for messages people can act on, the ARIA that wires them up, and a complete working example.

7 min read
Forms to email

How to Get a Working Form Endpoint With Just Your Email (No Signup)

No account, no dashboard, no API key: put your email address in the form's action and submissions start arriving. Here is each step, what happens behind it, and the trade-offs to know before you rely on it.

6 min read
Forms to email

HTML Contact Form Template That Emails You (Copy and Paste)

Ready-to-use HTML email form code: a minimal form, a full contact form with honeypot and subject, and a file-upload version. Paste, set one attribute, and submissions land in your inbox.

4 min read
Static site forms

How to Add a Custom Contact Form to Shopify Without an App

Shopify's built-in contact form is fixed and emails one address. Here is how to drop your own form into any Shopify page with Custom Liquid, route submissions where you want, and keep bots out, without installing an app.

4 min read
Static site forms

How to Host a Form Without a Website

No website yet, but you need a form people can fill in from a link? Here are the honest options, what each gives up, and when a hosted form page is the right call.

4 min read
Forms to email

Why Your Contact Form Emails Land in Spam (and How to Fix It)

Most form notifications land in spam for one reason: the From address is the person who filled the form. Here's why that fails authentication, and what to send instead.

5 min read
Static site forms

How to Add a Contact Form to a Vercel Site

Vercel doesn't do forms. Writing a function is the usual answer, and it's four surprises deep: a public POST endpoint, a stateless rate limiter, and a Hobby plan that bars commercial use.

5 min read
Static site forms

How to Build a Multi-Step Form in HTML (No Library Needed)

One form, several steps, about 30 lines of JavaScript. Includes the whole-form validation trap that silently breaks the Enter key, and a generator that writes it all for you.

5 min read
Static site forms

How to Convert a Google Form to HTML (and Style It Your Way)

Google Forms can't be exported as HTML or restyled in an embed. Three real options, what each one costs you, and a free converter that does the rebuild in seconds.

5 min read
Static site forms

Vue Contact Form Without a Backend (Composition API)

Two copy-paste patterns for a Vue 3 contact form that emails you — no Express server, no credentials in the client, spam handled server-side.

2 min read
Comparisons & alternatives

Free Form Backends Compared: What the Free Tiers Really Include

"Free" ranges from 50 test submissions to unlimited email forwarding. The real limits of every major free tier, verified — and which one fits your site.

3 min read
Comparisons & alternatives

Top 3 Formspree Alternatives in 2026 (Prices and Limits Verified)

Three Formspree alternatives that each fix a different complaint: the 50/month free cap, the $15 paid jump, and thin spam filtering. Figures verified September 2026.

8 min read
Static site forms

Add a Contact Form to GitHub Pages (No Server Needed)

GitHub Pages is static by design, so a working contact form needs one thing: somewhere to POST. Here's the whole setup, mailto traps and all.

2 min read
Static site forms

Make an AI-Generated Contact Form Actually Work (v0, Bolt, Lovable)

Your v0/Bolt/Lovable site has a beautiful contact form that does nothing when submitted. Here's why the button is dead — and the one line that fixes it.

4 min read
Static site forms

React Contact Form Without a Backend (Two Patterns)

No Express server, no API route, no email credentials in your client — two copy-paste patterns for a React contact form that actually delivers.

3 min read
Static site forms

Webflow & Framer Forms: Route Submissions Anywhere

Native Webflow and Framer forms are fine until the plan limits bite. One attribute (or one embed) routes your designed form through a real backend instead.

3 min read
Comparisons & alternatives

The 10 Best Form Backend Services in 2026

Formspree, Basin, Forminit, Web3Forms, Formspark and more — free tiers, verified pricing, and who each form backend really fits (including where ours falls short).

7 min read
Forms to email

Send Email From an HTML Form — No SMTP, No PHP

What SMTP actually is, why your HTML form can't speak it (and shouldn't), and the modern setup that emails you submissions with zero mail servers.

4 min read
Spam protection

How ShipMyForm Fights Form Spam (So You Never Have To)

Why we think spam is the backend's problem, not your visitors' — and how a layered defense keeps your inbox clean without a single CAPTCHA.

5 min read
Comparisons & alternatives

Formspree Pricing Explained: Is the Free Tier Enough? (2026)

What Formspree actually costs in 2026, what the 50-submission free tier does and doesn't include, and when a paid plan (or a different backend) makes more sense.

5 min read
Concepts & fundamentals

What Is a Form Endpoint? (And How to Use One)

The URL your form's action points to, explained: how endpoints receive submissions, how they relate to form backends, and how to wire one up.

4 min read
Static site forms

Request a Quote Form: Examples & Best Practices (2026)

What to put on a request-a-quote form, real examples by industry, and the best practices that turn more visitors into qualified quote requests.

6 min read
Static site forms

Hugo Contact Form Without a Backend (2026)

A copy-paste contact form for Hugo that emails you on every submission — drop it in as a shortcode, no server needed.

4 min read
Static site forms

How to Fix CORS Errors When Submitting a Form

'Blocked by CORS policy' on a form POST? What the error actually means, why fetch() triggers it, and the fixes — including the plain-form path that avoids CORS entirely.

4 min read
Static site forms

How to Handle Form Submissions in SvelteKit

Two ways to handle SvelteKit forms: native form actions with use:enhance, or a form backend that works even with adapter-static and no server.

4 min read
Automations & integrations

How to Send Form Submissions to Slack

Get each form submission into Slack as a clean, formatted message. Use the managed Slack connector, or wire it up free with the webhook connector and an automation.

6 min read
Spam protection

Protect Your Forms with Cloudflare Turnstile

Add Cloudflare Turnstile to any form — a free, mostly invisible CAPTCHA that stops scripted bots without image puzzles.

5 min read
Static site forms

How to Add Validation to Your Form

Reject bad submissions with server-side rules — required fields, formats, and limits — in a few clicks, no backend code. fetch() callers get per-field errors.

3 min read
Static site forms

How to Handle Form Submissions in Next.js

Three ways to handle a Next.js form — Server Actions, Route Handlers, or a form backend — with code for each and a clear rule for choosing.

4 min read
Automations & integrations

How to Send Form Submissions to Google Sheets

Turn a static-site form into a live Google Sheet. Connect Google once and every submission appends as a row — or do it free with a webhook and Apps Script.

5 min read
Comparisons & alternatives

Basin Alternative: ShipMyForm vs Basin (2026)

A fair comparison of ShipMyForm vs Basin: free-tier headroom, paid feature mix, and a one-line migration for your static-site forms.

6 min read
Automations & integrations

How to Connect Your Form to n8n

Send every form submission straight into an n8n workflow with the free webhook connector. No serverless glue, no polling.

5 min read
Comparisons & alternatives

ShipMyForm vs Netlify Forms: A Netlify Forms Alternative

Netlify Forms is great if you are all-in on Netlify. Here is how ShipMyForm compares when you want a form backend that runs on any host.

6 min read
Forms to email

How to Send an HTML Form to Your Email (Without PHP or SMTP)

Every way to get HTML form submissions into your inbox, compared: mailto:, PHP mail(), JavaScript email services, serverless functions, and a form backend. Plus the deliverability part every tutorial skips.

6 min read
Static site forms

Astro Contact Form Without a Backend (2026)

A copy-paste contact form for Astro that emails you on every submission — no server or API route.

3 min read
Comparisons & alternatives

ShipMyForm vs Formspree: An Honest 2026 Comparison

An honest look at ShipMyForm vs Formspree: free tiers, retention, spam, pricing, and a drop-in migration that is usually one URL change.

7 min read
Spam protection

How to Stop Contact Form Spam Without reCAPTCHA

Honeypots, rate limiting, and Turnstile — layered spam defenses that beat reCAPTCHA without the puzzles.

3 min read

Browse by topic