Open-source form backends compared: FormTo vs Formbricks vs HeyForm vs OhMyForm
April 5, 2026 · 9 min read
The "open-source form tool" category has quietly become a real market in the last few years. If you're allergic to cloud vendors, skeptical of privacy policies, or just like running your own infrastructure, there are now several credible self-hosted options. This post compares four of them honestly.
Full disclosure up front: I work on FormTo. I'm going to try to be fair anyway, and I'll tell you where the other tools genuinely beat us. If you want the unbiased version, the best thing to do is try each of them on a weekend — they're all free to install — and see which one matches your needs.
The four tools
| Tool | License | Stack | Primary use case |
|---|---|---|---|
| FormTo | AGPL-3.0 | Node + Fastify + React + Postgres | Contact forms, webhooks, inbox-style submission management |
| Formbricks | AGPL-3.0 | Next.js + Postgres | Experience management, product surveys, NPS |
| HeyForm | AGPL-3.0 | Node + Vue + MongoDB | Typeform-style conversational forms |
| OhMyForm | AGPL-3.0 | Node + Vue + MongoDB | Legacy fork of TellForm, general-purpose forms |
All four are genuinely open source under OSI definitions (not "source-available" games), all four can be self-hosted via Docker, and all four have active-enough communities to be worth considering in 2026.
Where each one shines
FormTo — the form backend for HTML forms
FormTo is the tool I built (and the one this blog is written for), so the brief is honest but obviously partial. FormTo treats the HTML form as sacred. You write your own <form> tag in whatever framework or CMS you already use, you point its action attribute at a FormTo endpoint, and FormTo handles storage, notifications, webhooks, spam filtering, and the dashboard. There is no visual form builder.
Good at: contact forms, lead capture, feedback forms, any case where you want the form on your own site in your own design.
Weak at: surveys with branching logic, step-by-step product onboarding flows, NPS-style experience management.
Best if: you run a static site, Jamstack site, CMS site, or any setup where you already own the HTML and just need a delivery layer. Also the easiest to run on a small VPS because the stack is light.
Formbricks — experience management at scale
Formbricks is the most enterprise-adjacent of the four. It's built around "experience surveys" — think Qualtrics, Delighted, or Typeform Surveys. Big emphasis on NPS, in-product surveys, user segmentation, and event-triggered questionnaires. The company behind it has raised real funding and the product reflects that investment.
Good at: in-product surveys, NPS, CSAT, funnel feedback, link-share surveys, team dashboards, attribute-based targeting.
Weak at: being a simple form backend. If you just want "contact form posts to my dashboard," Formbricks is more product than you need.
Best if: you're a product team that needs to run surveys inside a SaaS product, and you want an open-source alternative to Qualtrics or Sprig.
HeyForm — open-source Typeform alternative
HeyForm is the closest clone of Typeform's UX in the open-source space. Conversational one-question-at-a-time forms, nice animations, visual builder, logic jumps, payment integration in the paid cloud version. The self-hosted version gives you most of the feature set without the subscription.
Good at: visual form building, long multi-question surveys, conversational flows, lead generation where the form itself is the experience.
Weak at: embedding forms into your own site. HeyForm forms are designed to live on HeyForm's domain (or your own via white-label). If you want a plain <form> inside your existing page, HeyForm is less natural.
Best if: you're leaving Typeform to save money and you want a drop-in visual replacement.
OhMyForm — legacy, still useful
OhMyForm started as a fork of the older TellForm project, which itself dates back to around 2015. It's the oldest lineage in this list and it shows in both the codebase (MongoDB, older Vue) and the product (more "fill-a-form, look at submissions" than "integrate-into-your-site"). Development has slowed in recent years compared to the other three.
Good at: being the most drop-in-and-forget option if you just want a free, self-hosted general-purpose form tool and don't care about polish.
Weak at: everything where newer tools have moved ahead — modern UX, active development velocity, integration depth.
Best if: you're already running OhMyForm and it works, or you specifically want a no-frills MongoDB-based form tool. For a new install in 2026, I'd look at the other three first.
The honest comparison matrix
I'm going to keep this matrix specific. Generic "has feature X" tables are useless — what matters is how the features feel in practice.
| Capability | FormTo | Formbricks | HeyForm | OhMyForm |
|---|---|---|---|---|
| Docker Compose install | Yes, single command | Yes | Yes | Yes |
| Auto-HTTPS (Caddy/Traefik) | Yes, built-in Caddy | Manual setup | Manual setup | Manual setup |
Works with existing <form> HTML |
Primary use case | Via embed script | Via embed or redirect | Partial |
| Visual form builder | No (uses your HTML) | Yes | Yes (Typeform-style) | Yes |
| Submissions inbox + search | Yes | Yes | Yes | Basic |
| Webhook delivery with retries | Yes | Yes | Yes | Limited |
| Telegram/Slack native | Yes | Via webhook | Via webhook | Via webhook |
| Email notifications via SMTP | Yes | Yes | Yes | Yes |
| Spam protection (honeypot, rate limit) | Built-in, default on | Partial | Basic | Basic |
| File uploads | Yes | Yes | Yes | Yes |
| Conditional/branching logic | No (plain HTML) | Yes | Yes (strong) | Limited |
| User segmentation / targeting | No | Yes (strong) | Partial | No |
| NPS/CSAT-specific features | No | Yes (strong) | Limited | No |
| Multi-user / team accounts | Yes | Yes | Yes | Partial |
| CSV/JSON export | Yes | Yes | Yes | Yes |
| Latest major release (rough) | Active | Active | Active | Slower |
| Stars on GitHub (order of magnitude) | Growing | 11k+ | 6k+ | 2k+ |
| Database | Postgres | Postgres | MongoDB | MongoDB |
(Star counts and activity snapshots change constantly. Check the repos directly for the current state.)
The real decision — which should you pick?
Let me cut through the feature matrix with specific use-case answers.
You need a contact form, feedback form, or lead capture form on a website you already have. → FormTo. The tool is designed for exactly this. Paste the URL into your form's action attribute and ship.
You run a SaaS product and want to collect in-app surveys, NPS, or user feedback. → Formbricks. It's built for this exact category and it's the most polished in-product survey tool in open source.
You want a Typeform replacement because Typeform got expensive. → HeyForm. It's the closest UX clone and the self-hosted version saves the monthly bill.
You need a multi-page branching survey for academic research or complex data collection. → HeyForm is probably the best fit. Formbricks can also do this depending on the survey structure.
You're running a legacy site and want something simple, fast, and lightweight. → FormTo. It has the lightest runtime of the four and the simplest deploy story.
You need HIPAA, GDPR, or other compliance-heavy requirements. → Any of them can work when self-hosted (the whole point of self-hosting is that the legal surface is yours), but FormTo and Formbricks have the clearest documentation and most recent security reviews.
You already run Mongo infrastructure and hate adding Postgres. → HeyForm or OhMyForm, because they're already on Mongo.
You already run Postgres and hate adding Mongo. → FormTo or Formbricks.
Where FormTo genuinely loses
I promised honesty. Here's where we're not the best choice.
- If you want a visual form builder, FormTo does not have one. This is deliberate — the tool is designed for people who already have HTML forms — but if you want drag-and-drop, HeyForm or Formbricks will feel more complete.
- If you need NPS-style product surveys with attribute targeting and segmentation, Formbricks is a better product. We don't try to compete in that category.
- If you need the exact Typeform conversational flow where questions reveal one at a time with animations, HeyForm is much closer to that aesthetic.
- Our star count on GitHub is smaller than Formbricks's. HeyForm's is in between. Stars are not a direct quality signal but they matter for "will this project still exist in three years" confidence. We think we'll still exist. You should make your own call.
Where FormTo genuinely wins
And here's where I think we have an edge:
- The simplest deploy story. One
docker compose up -d, built-in Caddy for automatic HTTPS, no manual certbot dance. The others require you to wire up a reverse proxy yourself. - The lightest footprint. FormTo runs comfortably on a 1GB VPS. The others are heavier.
- The HTML-first philosophy. If your instinct is "I want to put a
<form>on my page and have it work," FormTo does that directly. The others prefer embed scripts or hosted form pages. - Postgres instead of Mongo. This is personal preference, but I find Postgres operationally simpler for long-term self-hosting — it backs up cleanly with
pg_dump, it has the best tooling ecosystem, and it's ubiquitous enough that any sysadmin already knows it. - The form endpoint model is the simplest mental model in this list. Paste a URL, you're done. No SDK, no init call, no API key headers.
A day in the life of each
If you want a feel for the differences, here's roughly what installing and using each one looks like on day one.
FormTo: clone repo, edit three env vars, run docker compose up -d, open the dashboard, create a form, paste the endpoint URL into your site. First submission in 10 minutes.
Formbricks: clone repo, configure environment, run Docker setup, create an environment, create a survey using the visual builder, embed via script tag or share a link. First submission in 20–30 minutes depending on how much survey you build.
HeyForm: clone repo, configure env, launch Docker stack, build a conversational form in the visual editor, share or embed. First submission in 20–40 minutes depending on form complexity.
OhMyForm: clone repo, wire up MongoDB, configure, launch, build a form. First submission in 30–60 minutes; slower than the others mostly because the docs are older.
These are first-install times. Subsequent forms are faster on all four.
The broader point
The "open-source form tool" category is healthy, competitive, and genuinely useful. Five years ago, if you wanted to self-host a form tool you had very few good options. Today you have four strong ones, each with a different philosophy and different strengths. That's great for users, and it's great for the broader open-source ecosystem.
If you pick FormTo, welcome. If you pick one of the others because it fits your use case better, also welcome — I'd rather you find the right tool than force yourself into ours. The whole point of an open, competitive category is that the match between tool and user gets better over time.
The FormTo repo is here. If you want to try it without the install step, the cloud version runs the same code and starts at $9/month with a free tier for testing.
Related: the self-hosting walkthrough, why we open-sourced it, and the Hetzner VPS tutorial if you want the specific "cheap VPS" setup.
More posts