Contact form guides

Whatever you build with, the integration is the same: point your form's actionat your Crunchforms endpoint. These guides show the exact markup for each framework, including the ones where a server endpoint isn't an option at all.

Plain HTML

No server, no JavaScript, no build step — the baseline every other guide builds on.

React

Plain form post or fetch with a JSON response, no server code either way.

Next.js

Works with static exports — no API route and no server action needed.

Vue

Vue 3, plain form post or fetch with a JSON response.

Nuxt

Including nuxt generate static sites, with no server route.

Svelte & SvelteKit

Including adapter-static builds, with no server endpoint.

Astro

Zero-JavaScript form that needs no SSR adapter and no API endpoint.

Angular

HttpClient with a JSON response, no server code.

Gatsby

No serverless functions to write or deploy.

Hugo

A reusable partial for any Hugo static site — no server, no JavaScript.

Jekyll

Including GitHub Pages, where no server code is allowed at all.

Eleventy (11ty)

A working form on an Eleventy site with no serverless functions.

Webflow

Own your submission data — storage and exports independent of your Webflow plan.

Framer

Store submissions outside Framer, with exports and email notifications.

WordPress

A plain HTML block — no Contact Form 7, no WPForms, nothing to keep updated.

Not seeing yours?

Every guide above is the same HTML form with different syntax around it — if your framework can render a <form> tag, it works. Start from the plain HTML guide, or grab a ready-made form from the template gallery.

Browse form templatesWhat is a form backend?

Full documentation, including the API reference, lives at docs.crunchforms.com.