Typeform is $25/mo (Basic). Surveyor is a self-hosted alternative at $0.99/mo. Here's when each makes sense.
| Surveyor | Typeform | |
|---|---|---|
| Hosting | Self-hosted, your infra | Managed SaaS (cloud only) |
| Data location | Your server, your disk | Typeform's cloud |
| Free tier | 3 forms, 100 responses | Paid only |
| Pro pricing | $0.99/mo | $25/mo (Basic) |
| Dependencies | None (single binary + SQLite) | N/A (managed) |
| Setup time | ~30 seconds | Account signup |
| Dashboard | Built-in at /ui | Cloud dashboard |
| License | BSL 1.1 | Proprietary SaaS |
Surveyor is a single Go binary with embedded SQLite. Install it with one command, and you are running in under a minute. Your data stays on your server.
curl -fsSL https://stockyard.dev/surveyor/install.sh | sh
Before choosing between Surveyor and Typeform, consider what happens when you need to leave. Typeform exports vary in completeness — some fields, some history, some metadata may not come with you. Surveyor stores everything in a single SQLite file. Leaving means copying that file. This is not a hypothetical concern: the average team changes tools every 18 to 24 months.
Architecturally, Surveyor and Typeform could not be more different. Typeform runs on distributed cloud infrastructure with load balancers, managed databases, CDNs, and redundancy across availability zones. Surveyor is a single process writing to a single file on a single disk. That sounds fragile until you realize that SQLite handles more concurrent readers than most web applications will ever need, and WAL mode means reads never block writes.
If you are currently using Typeform and considering Surveyor, start by running both in parallel. Install Surveyor on a test server, point your workflow at it for a week, and compare the experience. Surveyor's data directory is isolated — running a trial costs nothing beyond the compute. If Surveyor does not fit, delete the binary and the data directory. There is nothing else to clean up.
Single binary. Free to start. $0.99/mo for Pro.