Most form tools charge you a monthly fee to receive an email when someone fills out a contact form.
I get it — it's a service, there's infra involved. But $20–$40/mo for basic form handling felt like too much, especially across multiple projects.
So I built FormTo. Open-source form backend, MIT-friendly, self-hostable in minutes.
Here's what the setup looks like:
1. Clone and configure One repo, one .env file. Point it at your Supabase project, drop in your Clerk keys for auth, done.
2. Deploy Works on any Node-friendly host. Railway, Render, Fly.io, your own VPS. If you can run a Fastify app, you can run FormTo.
3. Connect your form Standard POST request to your endpoint. No SDK required. Works with any frontend — HTML, React, whatever.
Submissions hit your database directly. You own the data. You control retention, notifications, routing.
The stack: Fastify for the API, Supabase for storage, Clerk for auth, Polar.sh for the hosted version if you don't want to self-host.
It's free if you host it yourself. There's a paid hosted tier if you'd rather not deal with infra.
Repo is public. Still early, but the core works and it's in production on a few of my own projects.
If you've ever thought "I just need a form endpoint, why is this so complicated" — this is for you