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.
Full documentation, including the API reference, lives at docs.crunchforms.com.