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.

Static site formsForms to emailAutomations & integrationsSpam protectionComparisons & alternativesConcepts & fundamentals

Latest guides

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.

5 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 Submit a Form with JavaScript fetch()

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.

3 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.

4 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 a Backend)

Why mailto: and PHP mail() let you down on a static site — and the reliable way to get form submissions into your inbox, spam folder avoided.

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