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.
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.
Unlimited websites
Add every site you manage — a restaurant, a portfolio, a landing page — and keep their submissions cleanly separated.
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
Three steps to a working form
Create a form
Add your website, then create a form and define its fields from your Handles dashboard.
Copy the snippet
Grab the integration script and your form ID — Handles generates both for you.
Get submissions
Visitors submit the form like normal. You see it appear in your inbox in real time.