Frameworks
Handle forms without a backend
Every framework here is a frontend - none of them ships a place to receive a form submission. Rather than stand up a server, an API route, or a database for a contact form, you point the form at Formward's EU-hosted endpoint and it handles delivery, spam filtering, and storage. Pick your stack for a copy-paste example, the JSON response shape, and success and error handling. Using a site builder, CMS or static site generator instead? The platform guides cover WordPress, Webflow, Ghost, Hugo, Docusaurus and more.
React framework
Next.js
A Next.js contact form with no API route: App Router code for a fetch client component, a no-JS form and a server action, all posting to an EU endpoint.
Read guide →JavaScript library
React
A React contact form with no server: post FormData to Formward's EU endpoint with fetch, or use a React 19 form action with useActionState.
Read guide →JavaScript framework
Vue
Handle forms in Vue 3 without a backend. POST to Formward's EU-hosted endpoint with fetch() and reactive refs for sending, success, and error states.
Read guide →JavaScript framework
Svelte
Handle forms in a Svelte app without a backend. Submit to Formward's EU endpoint with fetch() and a reactive status variable for feedback.
Read guide →Content framework
Astro
Handle forms in Astro without a backend or an SSR adapter. Use a plain HTML form posting to Formward's EU endpoint, plus an optional AJAX script.
Read guide →Vue framework
Nuxt
Handle forms in Nuxt 3 without a Nitro server route. Post directly to Formward's EU-hosted endpoint from a Vue component using fetch() and reactive state.
Read guide →Svelte framework
SvelteKit
Handle forms in SvelteKit without writing a server action or +server.js route. Submit to Formward's EU endpoint with fetch() and a reactive status.
Read guide →TypeScript framework
Angular
An Angular contact form with no backend: a standalone component with a reactive form, HttpClient and signals, posting to Formward's EU endpoint.
Read guide →React framework
Remix
A Remix or React Router v7 contact form with no backend of your own: a plain form posting to Formward, or a route action that forwards it.
Read guide →JavaScript framework
SolidJS
A SolidJS contact form with no backend: createSignal for state, Show for the result, and fetch posting FormData to Formward's EU endpoint.
Read guide →JavaScript framework
Qwik
A Qwik contact form with no backend: component$, useSignal and preventdefault:submit posting to Formward, or a Qwik City routeAction$ that forwards it.
Read guide →Build tool
Vite
A contact form in a Vite vanilla TypeScript app: the endpoint in a .env file, an index.html form and a main.ts fetch handler. No server code.
Read guide →CMS
WordPress
Add a contact form to WordPress without a forms plugin: raw HTML in a Custom HTML block, or a shortcode, posting to Formward's EU endpoint.
Read guide →Visual builder
Webflow
Send Webflow form submissions to an EU backend by setting the Form Block's action to your Formward endpoint. The design stays as it is.
Read guide →Visual builder
Framer
Connect a Framer form to an EU backend. Point the form's submit URL at Formward's EU-hosted endpoint, or embed a raw HTML form.
Read guide →Vanilla JS
HTML
Send an HTML form to your email with no backend: set the form action to Formward's EU endpoint, get each submission by email, add fetch for an in-page submit.
Read guide →Static site generators
Hugo, Jekyll and Eleventy build plain HTML from templates, so their guides show the include or shortcode, the config value for the endpoint and a thanks page. Gatsby and Docusaurus render React to static pages and use a component.
Static site generator
Gatsby
A Gatsby contact form with no functions or server: a React component that posts to Formward with fetch and works on a static build.
Read guide →Static site generator
Eleventy
An Eleventy (11ty) contact form: endpoint in a global data file, a Nunjucks include and a thanks page. Plain HTML posting to Formward, no plugin.
Read guide →Static site generator
Jekyll
A Jekyll contact form that works on GitHub Pages: a reusable Liquid include, the endpoint in _config.yml and a thanks page. No plugin or server.
Read guide →Static site generator
Hugo
Add a contact form to a Hugo site with a shortcode and an endpoint in hugo.toml. Plain HTML posting to Formward, no server or function.
Read guide →Static site generator
Docusaurus
Add a "Was this page helpful?" form to Docusaurus docs: a React component in src/components, used from MDX, posting to Formward's EU endpoint.
Read guide →One endpoint, any framework
Create a form, point your markup at it, and keep every submission in the EU. GDPR-clean from the first POST.