Skip to content

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.

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.

Form handling without a backend, per framework | Formward