FormTo Cloud vs self-hosted: which one should you pick?

April 5, 2026 · 8 min read

Laptop on a desk — choosing between FormTo Cloud and self-hosted

There's a question I get asked at least twice a week: "Should I use FormTo Cloud or self-host it?"

I like this question because it's not a trick. There's no hidden "self-hosting is actually too hard" trap I'm going to spring on you at the end. FormTo is AGPL-3.0, the full source is on GitHub, and the self-hosted version runs the same code the cloud version does. Picking one over the other is a real choice based on what you actually need.

This post is the honest version of the answer. No "it depends" cop-out, no fake balance. Here's how I actually decide.

The one-line version

  • Cloud if you want to stop thinking about forms entirely and pay someone else to operate the server
  • Self-hosted if you want full data ownership, have a compliance requirement, or genuinely enjoy running your own infrastructure

That's it. The rest of the post is the detail.

What's the same between them

Both versions run the exact same code. Same backend, same frontend, same database schema, same spam detection, same honeypot logic, same webhook dispatch, same email templates, same dashboard, same analytics, same CSV export, same first-run wizard.

When you clone lumizone/formto and run docker compose up -d, you get the same software our cloud customers use. There is no "enterprise tier" with secret features held back from the open-source repo. We do not build a better version internally and ship the worse one to GitHub. The repo is the product.

This is unusual enough to be worth saying out loud, because many "open-core" SaaS companies keep the interesting features closed and put a stub in the public repo. We don't. If you find a feature in the cloud version, it's in the AGPL repo too.

What's different

The difference is operational, not functional.

Cloud gives you

  • An edge network. Our infrastructure runs across multiple regions so form submissions hit a nearby ingestion point and are acknowledged in ~100ms from anywhere on earth. A single VPS cannot physically match that; the speed of light is real.
  • 24/7 on-call. When something breaks at 2 a.m., a human on our team gets paged and fixes it. When your VPS breaks at 2 a.m., you get paged.
  • Automatic updates and zero-downtime deploys. We push new versions continuously. You don't have to git pull && docker compose up -d --build to stay current.
  • Email deliverability tuning. Our sending domains are warmed, authenticated, and monitored. Your fresh VPS sending domain is not.
  • Aggregated spam reputation. We see spam patterns across thousands of customers and use that aggregate signal to catch attacks before they hit any single form. A single self-hosted instance only sees its own traffic.
  • Backup and disaster recovery. We run continuous backups across regions with point-in-time recovery. You run pg_dump to a local file unless you set up something more elaborate.
  • Somebody else's SOC 2 and DPA to cite on your vendor questionnaire.
  • No server administration at all. You paste a URL and never think about it again.

Self-hosted gives you

  • Physical control of your data. Submissions live on a disk you own, in a data center you picked, under a legal jurisdiction you chose. No trust required in any vendor.
  • No submission limits. Your plan is whatever your server can handle. On a modest VPS that's many thousands of submissions per day, far more than cloud plans typically offer at any price.
  • Custom code. Fork the repo, change the spam rules, add a webhook transform, build an integration we don't support. You can't do any of that on the cloud version.
  • Budget certainty. Fixed monthly VPS cost, no overage charges, no "you hit the submission cap" surprise on Friday afternoon.
  • Insulation from vendor risk. If FormTo as a company disappears tomorrow, your self-hosted instance keeps working. The repo is on GitHub, the code is on your disk, the database is yours.
  • Compliance options cloud can't match. Some industries and some governments cannot use hosted form backends at any price. Self-hosted is the only way they get to use FormTo at all.

The cost comparison (honest version)

Cloud plans start at $9/month for 1,000 submissions. Self-hosted runs on a VPS starting at €5/month.

So self-hosted is cheaper, right? Yes — in money. Let me add the column nobody includes.

Item Cloud ($9/mo plan) Self-hosted (€5/mo VPS)
Subscription / infrastructure $9/month ~€5/month
Domain Included Included if reused, ~€10/year otherwise
Setup time 4 minutes 15–30 minutes first time
Monthly sysadmin time 0 15–60 minutes
Yearly sysadmin time (updates, backups, troubleshooting) 0 3–6 hours
On-call burden 0 Non-zero — it's your server
Submission limit 1,000/month (scale up to more on higher plans) Whatever the VPS can handle (usually 100k+)

Whether self-hosted is actually cheaper depends on how you value your time. At €50/hour, self-hosting costs €5/month + ~€25/month in time ≈ €30/month real cost. At €0/hour (you genuinely enjoy it), it's €5/month and you come out ahead by a lot.

There's no universal right answer here. It's a personal calculation.

The decision rule I actually use

When friends ask me which one to pick, I ask three questions.

1. Is there a compliance requirement?

Are you in healthcare, government, finance, defense, or a regulated industry where "we use a US SaaS vendor" will fail an audit? Are you in an EU country with a strict DPO who will not approve a cloud tool, even an EU-hosted one? Is your legal team allergic to Data Processing Agreements?

If yes, self-host. This is the clearest case. Cloud form backends literally cannot serve you. Self-hosting gives you the data-sovereignty story you need, and the AGPL license gives you the auditability story to go with it.

2. Is your team comfortable with docker compose?

Does "SSH into a VPS and run docker compose up -d" sound like a Tuesday afternoon or like a hostage situation? When Postgres refuses to start, would you know where to look?

If it sounds easy, self-hosting is fine. If it sounds terrifying, don't force yourself. Cloud exists so non-technical teams can skip the server layer entirely, and there is zero shame in choosing it. Running infrastructure you don't understand is worse than paying someone who does.

3. Do you want to care about forms?

Some people find running their own services satisfying. They enjoy htop, they like reading logs, they treat their homelab like a hobby garden. For them, self-hosting is a feature, not a cost.

Other people want forms to be invisible. They want to paste a URL, get notifications, and never think about the infrastructure layer. For them, "self-hosting" means "yet another thing on my to-do list I don't want."

Pick the option that matches your personality. This is maybe the softest criterion but it's the one I use most in practice, because people who hate operating servers will let self-hosted installs rot, and people who love it will find cloud unsatisfying no matter how smoothly it runs.

The hybrid option nobody talks about

You can do both.

Run self-hosted FormTo for your high-value, high-compliance forms — the ones where data sovereignty matters, or where you want to customize the pipeline, or where a vendor cannot legally hold the data. Run cloud FormTo for your low-stakes marketing forms where the overhead isn't worth it.

Nothing stops you from mixing. The dashboards are separate but the <form action="..."> syntax is identical. You'd just paste a self-hosted URL on the compliance-sensitive forms and a cloud URL on the marketing ones.

This is what several of our customers actually do. A regulated industry with a public marketing site will self-host the patient-intake form (HIPAA sensitive) and use cloud for "subscribe to our newsletter" (not sensitive). Both using FormTo. One bill for the cloud one, one server for the self-hosted one, one dashboard each.

Migration between them

Here's a subtle benefit of using the same software for both: you can move between them without migrating code.

Cloud → self-hosted: export your forms and submissions from the cloud dashboard (CSV + JSON export is in every plan), stand up a self-hosted instance, import. Update your <form action="..."> URLs to point at the new instance. The HTML on your site doesn't change — only the URL does.

Self-hosted → cloud: same in reverse. Export from your self-hosted dashboard, create forms in the cloud instance, import, update URLs.

Both directions take a couple of hours of focused work, maybe less. The key point is that switching is possible. That's unusual for SaaS. If you ever feel locked in on either side, you're not — the exit doors are real.

What I'd actually recommend, by persona

A short tour, because generic advice doesn't help anybody.

Indie developer with a personal site. Start with cloud free tier. 25 submissions a month is usually enough for a blog. If you outgrow it, the $9 plan is cheaper than the cognitive overhead of self-hosting for a single small site.

Agency shipping client work. Cloud, every time. You don't want to be running infrastructure on behalf of clients. Give each client their own form, put them on a plan, move on.

Early-stage startup, no compliance needs. Cloud. You have better things to do. Revisit when you're bigger or when compliance becomes a concern.

Mid-stage company with a DPO. Self-hosted, probably. Ask the DPO first.

Regulated industry (healthcare, finance, gov). Self-hosted, no question. Audit trail included.

Homelab enthusiast. Self-hosted. It'll be one of the more reliable services in your homelab and you'll enjoy the setup.

Non-technical small business. Cloud. Don't touch the server route. Your energy is better spent on your actual business.

Dev shop with five products and growing spam concerns. Self-hosted, because custom spam rules and custom integrations are easier when you own the code. Also possibly cloud for the non-critical surfaces. Hybrid is fine.

The thing I genuinely care about

I want to leave you with the point I care about most.

The existence of the open-source version is supposed to make the cloud version more trustworthy, not less. When I pay for a cloud service whose code I can read, and whose self-hosted alternative I could switch to at any time, I'm not making a weaker commitment — I'm making a more informed one. I'm choosing the operational convenience because I like it, not because I'm locked in.

That's the posture I want FormTo to have, for you. Pick cloud because it's easier. Pick self-hosted because it's yours. Switch if your needs change. The software is the same on both sides.


If you're going cloud: create a free form, paste the URL into your site, done.

If you're going self-hosted: the complete self-hosting guide walks through every step, and the Hetzner VPS tutorial has the specific cheap-VPS setup.

Either way, the repo is here. Star it if you like the direction, regardless of which version you end up using.

← All posts