Forms, without the backend

Turn any website form into a working inbox

Add one script tag to your site, tag your form with an ID, and every submission lands in your Handles dashboard — organized by website and form.

<script src="https://mainhandles.onrender.com/forms.js"></script> <form data-handles-form="YOUR_FORM_ID"> <input name="name" placeholder="Name"> <input name="email" placeholder="Email"> <textarea name="message"></textarea> <button type="submit">Send</button> </form>

Everything a form needs, none of a backend

Handles handles the plumbing: routing, storage, spam filtering, and an inbox — so you can keep shipping static sites.

W

Unlimited websites

Add every site you manage — a restaurant, a portfolio, a landing page — and keep their submissions cleanly separated.

F

Unlimited forms per site

Contact, reservation, feedback, job application — create as many forms as you need, each with its own fields.

Dynamic fields

Every form can collect completely different data. Handles stores whatever fields you define, automatically.

Real inbox

Read, search, and filter submissions by website or form. Mark them read, delete spam, keep things tidy.

🔒

Built-in protection

Rate limiting, honeypot spam trapping, and strict per-user data isolation are on by default.

🧩

One script tag

Works on plain HTML sites, including ones hosted on GitHub Pages. No build step, no framework required.

How a submission gets to you

Visitor Your website Handles script Handles API Your dashboard

Three steps to a working form

1

Create a form

Add your website, then create a form and define its fields from your Handles dashboard.

2

Copy the snippet

Grab the integration script and your form ID — Handles generates both for you.

3

Get submissions

Visitors submit the form like normal. You see it appear in your inbox in real time.

Start collecting submissions in minutes

Free to start. No credit card required.

Create free account