Best Open Source Form Builders in 2026
Best Open Source Form Builders in 2026
TL;DR
Typeform charges $29/month with a 100 responses/month limit on the free tier. Self-hosted alternatives give you unlimited responses for the cost of a VPS. Formbricks is the best for in-app surveys and product feedback. Typebot is the right choice for conversational lead capture forms. Heyform is the closest to a self-hosted Typeform. LimeSurvey handles research-grade surveys with 30+ question types.
Key Takeaways
- Formbricks (AGPL-3.0, 8K+ stars) is purpose-built for in-app feedback — NPS, CSAT, CES surveys that trigger based on user behavior
- Typebot (AGPL-3.0, 7K+ stars) builds conversational chatbot-style forms with visual flow design — the self-hosted Typeform/Landbot replacement
- Heyform (AGPL-3.0, 7K+ stars) is the most direct traditional Typeform alternative with a drag-and-drop form builder
- LimeSurvey (GPL-2.0, 2.7K+ stars) is the academic and research standard with advanced survey logic and statistical export
- Self-hosting eliminates per-response pricing — critical for high-volume form workflows
- All four tools support webhook integrations to forward submissions to any downstream system
Why Per-Response Pricing Is a Bad Model
Typeform's pricing model charges by the number of responses received. The Basic plan ($29/month) allows 100 responses. The Plus plan ($59/month) allows 1,000. At 5,000 responses/month, you're on the Business plan at $99/month — $1,188/year.
For product teams running NPS surveys, customer feedback forms, or lead capture flows, response volume is directly tied to how well your product is growing. Paying more as your form gets more successful is the wrong incentive structure.
Self-hosted form tools eliminate per-response pricing. You collect 100 or 100,000 responses for the same server cost.
Formbricks — Best for In-App Product Surveys
Formbricks is purpose-built for the in-app feedback use case that Typeform wasn't designed for. While Typeform sends users to an external URL for a survey, Formbricks renders a survey widget inside your application without leaving the page — a slide-out panel, a popup, or an embedded form.
The behavior-based triggering system is Formbricks' most powerful feature. You define surveys that trigger based on:
- User events (clicked a feature, completed an action, reached a milestone)
- Page visits (viewing the settings page, visiting pricing for the third time)
- Time delays (after 30 days in the product)
- Custom attributes (enterprise plan users, users who completed onboarding)
This behavioral targeting makes Formbricks genuinely useful for product research — you're not sending the same NPS survey to everyone, you're asking contextual questions at the right moment in the user journey.
# Formbricks Docker Compose
services:
formbricks:
image: ghcr.io/formbricks/formbricks:latest
restart: always
ports:
- "3000:3000"
environment:
- WEBAPP_URL=https://surveys.yourdomain.com
- DATABASE_URL=postgresql://formbricks:password@postgres:5432/formbricks
- NEXTAUTH_SECRET=your-secret
- NEXTAUTH_URL=https://surveys.yourdomain.com
- ENCRYPTION_KEY=your-32-char-encryption-key
- EMAIL_VERIFICATION_DISABLED=1 # Set to 0 for email verification
depends_on:
- postgres
postgres:
image: postgres:15
environment:
POSTGRES_DB: formbricks
POSTGRES_USER: formbricks
POSTGRES_PASSWORD: password
volumes:
- formbricks_db:/var/lib/postgresql/data
volumes:
formbricks_db:
Pre-built templates cover the most common product feedback scenarios: Net Promoter Score (NPS), Customer Effort Score (CES), Customer Satisfaction (CSAT), feature request surveys, onboarding dropoff surveys, and churn exit surveys. Each template has pre-written questions optimized for the use case.
// Formbricks SDK integration in your React app
import { formbricks } from "@formbricks/js";
formbricks.init({
environmentId: "your-environment-id",
apiHost: "https://surveys.yourdomain.com",
});
// Identify the current user
formbricks.setUserId("user_123");
formbricks.setAttributes({
plan: "pro",
daysActive: 45,
completedOnboarding: true,
});
// Register a custom action (used in survey triggers)
formbricks.track("feature_used", { featureName: "advanced_export" });
Webhook integration forwards every survey response to your data warehouse, CRM, or communication tools in real-time. Zapier and Make.com native integrations cover teams without a dedicated data engineer.
Key features:
- In-app survey widget (slide-out, popup, embedded)
- Behavior-based survey triggering
- User attribute targeting
- NPS, CSAT, CES pre-built templates
- Multi-step surveys with logic
- SDK for React, Next.js, Vue, vanilla JS
- Webhook and API integrations
- Analytics dashboard (response rates, scores over time)
- Unlimited responses
Typebot — Best Conversational Forms
Typebot reimagines the form as a conversation. Instead of presenting all fields at once, Typebot shows one question at a time in a chat-style interface with typing animations, buttons, and natural-language responses. The resulting experience has significantly higher completion rates than traditional form designs for lead capture and qualification flows.
The visual flow builder is drag-and-drop — no code required. You connect question nodes with conditional branches: "if annual revenue > $1M, show enterprise plan options; otherwise, show SMB options." A/B test different question sequences by splitting traffic at a junction node.
# Typebot Docker Compose
services:
typebot-builder:
image: baptistearno/typebot-builder:latest
restart: always
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://typebot:password@postgres:5432/typebot
- NEXTAUTH_URL=https://typebot.yourdomain.com
- NEXTAUTH_SECRET=your-secret
- ENCRYPTION_SECRET=your-32-char-secret
- NEXT_PUBLIC_VIEWER_URL=https://bot.yourdomain.com
typebot-viewer:
image: baptistearno/typebot-viewer:latest
restart: always
ports:
- "3001:3001"
environment:
- DATABASE_URL=postgresql://typebot:password@postgres:5432/typebot
- NEXT_PUBLIC_VIEWER_URL=https://bot.yourdomain.com
postgres:
image: postgres:15
environment:
POSTGRES_DB: typebot
POSTGRES_USER: typebot
POSTGRES_PASSWORD: password
volumes:
- typebot_db:/var/lib/postgresql/data
volumes:
typebot_db:
Embedding options are flexible: popup (triggers on scroll or time delay), bubble (floating chat icon in the corner), or full-page embed. Each embedding mode has customizable appearance through the builder.
Key features:
- Visual conversational flow builder
- Conditional branching and logic
- 40+ block types (input, question, buttons, images, video, code, API call)
- Native integrations (Google Sheets, Slack, webhook, Zapier)
- A/B testing
- Three embed modes (popup, bubble, full-page)
- Custom domains
- Analytics (completion rates, drop-off by step)
Heyform — Best Traditional Form Builder
Heyform is the most direct Typeform alternative for teams that want the traditional multi-step form format (not conversational). The drag-and-drop builder covers all the question types you'd expect: short text, long text, multiple choice, checkbox, dropdown, rating, date, and file upload.
Conditional logic lets you skip sections or show different follow-up questions based on previous answers. Custom themes let you match your brand colors and typography.
The team workspace feature is notable: multiple team members can collaborate on form creation, view responses, and manage sharing settings. Typeform charges extra for team features; Heyform includes them in the self-hosted version.
Key features:
- Drag-and-drop form builder
- 15+ field types
- Conditional logic
- Custom themes and branding
- File upload handling
- Analytics dashboard (submissions, completion rate, time-to-complete)
- Team workspaces
- Webhook integrations
- CAPTCHA support
LimeSurvey — Best for Research
LimeSurvey is the choice when survey methodology rigor matters. With 20+ years of development and 30+ question types — matrix, ranking, constant sum, equation, file upload, multiple numerical inputs — it covers survey designs that academic research requires.
Multi-language support handles localized surveys across 80+ languages with right-to-left text support. Quota management lets you cap responses by demographic attribute, ensuring representative samples. The statistical export (SPSS, R, Excel) integrates directly with research analysis workflows.
LimeSurvey is PHP-based and feels less modern than Formbricks or Typebot, but the depth of functionality is unmatched for research applications.
Full Comparison
| Feature | Formbricks | Typebot | Heyform | LimeSurvey |
|---|---|---|---|---|
| License | AGPL-3.0 | AGPL-3.0 | AGPL-3.0 | GPL-2.0 |
| Stars | 8K+ | 7K+ | 7K+ | 2.7K+ |
| Form Style | Traditional | Conversational | Traditional | Traditional |
| In-App Widget | ✅ | ❌ | ❌ | ❌ |
| Behavior Triggers | ✅ | ❌ | ❌ | ❌ |
| SDK | ✅ JS/React | ✅ Embed | ❌ | ❌ |
| Logic/Branching | ✅ | ✅ Visual | ✅ | ✅ Advanced |
| A/B Testing | ❌ | ✅ | ❌ | ❌ |
| Webhooks | ✅ | ✅ | ✅ | ✅ |
| Unlimited Responses | ✅ | ✅ | ✅ | ✅ |
| Min RAM | 512 MB | 512 MB | 512 MB | 256 MB |
Decision Framework
Choose Formbricks if: You're a product team that needs in-app surveys triggered by user behavior. NPS, CSAT, CES, and product feedback workflows.
Choose Typebot if: You're building lead capture or qualification flows where conversational format increases completion rates. Marketing use case.
Choose Heyform if: You want a traditional Typeform-style form builder for standard survey and contact form use cases.
Choose LimeSurvey if: You're running academic research, market research, or any survey that requires advanced methodology, quota management, or statistical export.
Cost Comparison
| Tool | Annual Cost |
|---|---|
| Typeform Business (5K responses) | $1,188/year |
| SurveyMonkey Team (unlimited) | $900/year |
| Formbricks self-hosted | $72/year (VPS, unlimited responses) |
| Typebot self-hosted | $72/year (unlimited responses) |
Choosing Based on Your Integration Needs
The four tools above have very different integration stories, and for many teams, integration compatibility is the deciding factor rather than UI features.
Formbricks connects to your product's data layer through its JavaScript SDK, which is its core integration mechanism. You identify the logged-in user, set user attributes (plan type, account age, feature usage flags), and fire custom events. The survey engine decides based on your targeting rules whether to show a survey to that user at that moment. This SDK-based integration is deep — it works in React, Next.js, Vue, vanilla JS, and mobile apps via the REST API. For teams with a product analytics stack (Amplitude, Mixpanel, Segment), Formbricks can receive events forwarded from these tools, meaning you can trigger surveys based on analytics events your product already tracks. The webhook output posts responses to Slack, sends to your CRM, or triggers Zapier workflows for more complex routing.
Typebot's integration model is built around its visual flow builder. Within a flow, you can make API calls to external services mid-conversation — pulling personalization data from your CRM, submitting lead information to Salesforce, checking account status before showing pricing options. Native blocks cover Google Sheets (write responses directly to a spreadsheet without a webhook), Slack notifications, email via SMTP or SendGrid, and Calendly scheduling embeds. This makes Typebot especially powerful for complex lead capture flows where the form itself is a lightweight CRM action — the bot collects qualification data, scores the lead, writes to a spreadsheet, notifies the sales rep via Slack, and schedules a call, all within a single flow.
For integration depth comparisons between Formbricks and Typebot, see Formbricks vs Typebot 2026. For the broader Typeform alternative landscape with integration details, see Best Open Source Alternatives to Typeform 2026.
Self-Hosting vs SaaS for Forms: Privacy Considerations
Form data is among the most privacy-sensitive information your organization collects. Survey responses, support requests, contact form submissions, and NPS feedback often contain personal information — names, email addresses, health context, financial details, and candid opinions users wouldn't want shared publicly.
When you use Typeform, SurveyMonkey, or Tally as a SaaS form tool, your respondents' data lives on that company's infrastructure. These companies' privacy policies determine how long the data is retained, whether it's used for analytics, who can access it, and what happens to it if the company is acquired. Most users don't read these policies. GDPR and CCPA compliance is technically the form vendor's responsibility, but the data controller (your organization) carries the compliance burden in practice.
Self-hosted form tools address this differently. When you run Formbricks, Typebot, or Heyform on your own infrastructure, response data never leaves your servers. Your database is the single source of truth. You control retention policies — delete responses after 90 days, export to your data warehouse, or archive indefinitely. GDPR data subject requests (export or deletion) are executed directly against your database. There's no third-party data processor agreement to manage.
The practical tradeoff is operational overhead. A self-hosted form tool requires a server (typically $6–12/month), occasional updates, and monitoring. For organizations already running other self-hosted infrastructure (Git hosting, analytics, project management), adding a form tool is a marginal cost. For organizations with no existing self-hosting footprint, the operational overhead is a real consideration against the privacy benefit.
Related: Formbricks vs Typebot: Which Form Tool? · Best Open Source Typeform Alternatives · How to Self-Host Formbricks · How to Migrate from Typeform to Formbricks
See open source alternatives to Typeform on OSSAlt.