OpnForm
Build unlimited, embeddable forms with no code — powered by AI, logic rules, and real-time analytics
OpnForm is an open-source form builder that lets teams create unlimited, fully customizable forms without writing a single line of code. Backed by a Laravel 11 backend and Nuxt 3 frontend, it supports drag-and-drop field creation across more than a dozen input types, conditional logic for branching workflows, and file uploads up to 50MB on paid plans.
The platform integrates natively with Slack, Discord, Telegram, N8n, Zapier, Activepieces, Google Sheets, and custom webhooks, turning every form submission into a data pipeline. An AI-powered form generator lets users describe their form in plain English and receive a fully structured form within seconds, dramatically reducing setup time.
OpnForm ships with a built-in analytics dashboard tracking views, submissions, and conversion rates per form, with CSV export for offline analysis. It runs as a multi-container Docker stack — Laravel API, Nuxt client, PostgreSQL, Redis, and Nginx — making self-hosting straightforward for developers comfortable with Docker Compose. The dual-license model keeps the AGPLv3 core free and open while funding advanced Enterprise features like SAML SSO, OIDC, two-factor authentication, custom domains, and workspace-level custom CSS and JavaScript.
The project reached v2.0 in June 2026 with over 3,400 GitHub stars, 60 releases, and an active contributor community maintaining a release cadence of roughly 1.3 releases per month.
What You Get
- No-code drag-and-drop form builder - Create forms using 10+ field types including text, date, URL, phone, file upload, signature, matrix, payment blocks, and hidden fields without writing code.
- AI-powered form generation - Describe your form in plain text and let OpnForm AI instantly produce a fully configured form with appropriate field types and labels.
- Unlimited forms and submissions - No artificial caps on the number of forms, fields, or responses even on the self-hosted free tier.
- Conditional logic and branching - Show or hide fields based on previous answers, set form closing dates, restrict submissions by IP, and pre-fill fields via URL parameters.
- Multi-channel integrations - Connect to Slack, Discord, Telegram, Google Sheets, N8n, Zapier, Activepieces, and custom webhooks so every submission triggers your existing workflows.
- File uploads with secure storage - Accept files up to 5 MB (free) or 50 MB (Pro) with automatic signed URL handling for filenames with special characters.
- Built-in form analytics dashboard - Track views, submission counts, and conversion rates per form with visual charts and CSV export — no external analytics tool required.
- Customizable themes and thank-you pages - Modify colors, fonts, logos, and transparent backgrounds; redirect respondents to a custom URL or display a rich thank-you message after submission.
- Docker-based self-hosting - Deploy the full stack (API, client, PostgreSQL, Redis, Nginx) with a single
docker compose up, with named volumes and health checks for reliability. - Enterprise authentication - SAML SSO, OIDC account linking, and mandatory two-factor authentication for workspace members are available under the Enterprise license.
- Partial submissions and submission UUIDs - Capture in-progress form data and track individual responses with unique identifiers for advanced CRM and data pipeline integrations.
- Workspace custom code injection - Add per-workspace custom CSS or JavaScript to all forms, enabling advanced branding, tracking pixels, or third-party widget integrations.
Common Use Cases
- Lead capture for SaaS marketing teams - A marketing team embeds OpnForm lead forms on landing pages, uses conditional logic to qualify leads by company size, and fires a Slack notification to sales for every high-intent submission.
- Event registration with file collection - A conference organizer collects attendee details and speaker proposal PDFs (up to 50 MB) via a single form, tracks registration conversion in the analytics dashboard, and exports submissions to CSV for the event app.
- On-premises intake forms for regulated industries - A healthcare provider self-hosts OpnForm on internal infrastructure to collect patient intake data without routing sensitive information through third-party cloud services.
- Internal HR and operations workflows - An operations team builds employee onboarding checklists, equipment request forms, and feedback surveys, routing submissions directly to Google Sheets and a project management webhook.
- Newsletter and waitlist collection - A solo founder uses the AI form builder to generate a waitlist form in seconds, embeds it on a blog, and receives Discord notifications for every new signup.
- Developer and community feedback collection - An open-source maintainer creates a bug report form with conditional fields for environment details, submits responses to a webhook consumed by a GitHub Issues bot, and tracks submission volume over time.
Under The Hood
Architecture
OpnForm follows a clean separation of concerns across two decoupled applications: a Laravel 11 REST API and a Nuxt 3 SPA, communicating exclusively over HTTP with JWT-authenticated endpoints. The backend organizes logic into controllers for routing, service classes for business rules (submission processing, form cleaning, AI generation, file handling), Eloquent models for persistence, and queued jobs dispatched to Laravel Horizon for async work like sending email notifications and firing webhooks. A plugin-style integration framework in the Integrations layer allows new third-party connectors to be added by implementing a single abstract handler without touching submission or routing logic. Enterprise features reside in a hermetically sealed api/app/Enterprise/ directory, activated only when a valid license key is present, which means the AGPLv3 core can be audited cleanly without the proprietary layer.
Tech Stack The API runs on PHP 8.3 with Laravel 11, Laravel Horizon for queue management, Laravel Sanctum for session auth, and Tymon JWT-Auth for stateless API tokens. PostgreSQL 16 provides the primary datastore with Doctrine DBAL for schema introspection, and Redis 7 handles caching, queues, and session storage. The frontend uses Nuxt 3 with Vue 3, Pinia for state management, TanStack Query for server state, VueUse for composable utilities, and Nuxt UI (built on Tailwind CSS v4) for the component library. The stack is containerized with Docker Compose, routing traffic through Nginx, with separate Dockerfiles for the API (PHP-FPM) and client (Node.js). Sentry handles error monitoring on both surfaces, and AWS Amplify drives the managed cloud frontend deployment.
Code Quality
With 168 test files spanning unit and feature tests, OpnForm has extensive automated coverage across form submission pipelines, integration handlers, authorization policies, OAuth flows, two-factor authentication, and billing logic. Pest is the test runner of choice, with factory patterns and TestHelper traits reducing boilerplate. Error handling is explicit and typed throughout the PHP layer — custom exception classes map to structured HTTP error responses, and form field validation uses dedicated Rule classes rather than inline array definitions. The codebase enforces code style through Laravel Pint and PHPStan static analysis (phpstan.neon), and the frontend applies ESLint with Vue-specific rules. CI runs end-to-end tests via Playwright across a dedicated Docker Compose environment.
What Makes It Unique
The combination of an AI form generator backed by OpenAI, a MentionParser that resolves dynamic field references into submission-aware templates (used for PDF filename patterns and email bodies), and a matrix/payment block field system puts OpnForm meaningfully ahead of simpler open-source alternatives. The dual-license architecture is technically elegant: the FormCleaner service inspects each form at request time and strips Pro or Enterprise features whose workspace plan does not cover them, ensuring that self-hosters running the free tier never accidentally expose gated behavior. Partial submission capture with per-submission UUIDs, per-workspace custom CSS/JS injection, and a transparent form theme system for iframe embedding address long-standing gaps that tools like Formbricks and LimeSurvey have not yet filled.
Self-Hosting
OpnForm uses a dual-license model. The core application — everything outside api/app/Enterprise/ — is released under the GNU Affero General Public License v3 (AGPLv3). This means you can use it freely for personal or commercial projects, modify it, and distribute it, but any modifications you make to the codebase and expose over a network must also be released under AGPLv3. For most internal deployments this is a non-issue, but if you are building a derivative product or embedding OpnForm into a service you sell to others, you will need to either publish your modifications or obtain a commercial license. The Enterprise Edition features — SAML SSO, OIDC, advanced 2FA, and the OIDC provisioning service — live under a separate proprietary license requiring an active Enterprise subscription from OpnForm.
Running OpnForm yourself requires owning and operating a Docker-compatible host with at minimum 1 vCPU and 2 GB of RAM, though 2 vCPU and 4 GB is recommended for production workloads. You are responsible for provisioning PostgreSQL and Redis, configuring SMTP for outbound email, managing SSL termination through your own Nginx or Caddy reverse proxy, and handling backups of the database and file storage volumes. Laravel Horizon requires a persistent worker process to process queued submissions and integrations; if the queue goes down, webhook deliveries and email notifications stall until it recovers. Updates involve pulling new Docker images and running php artisan migrate, with no automated migration safety checks.
Compared to OpnForm Cloud, self-hosters lose automatic backups, managed uptime SLAs, one-click upgrades, and the Crisp-based support channel. The managed tier handles infrastructure scaling transparently during traffic spikes, whereas a self-hosted instance requires manual vertical or horizontal scaling. Enterprise features such as dedicated cloud instances, SSO, and priority support are only available through a paid plan regardless of whether you choose cloud or self-hosted deployment — the Enterprise license must be purchased separately and activated with a license key even when running on your own infrastructure.
Related Apps
ntfy
Developer Tools · Marketing
Send push notifications to your phone or desktop from any script or service using a single HTTP PUT or POST—no sign-up required.
ntfy
Apache 2.0Dub
Marketing · Analytics
The open-source link attribution platform for short links, conversion tracking, and affiliate programs — powering 100M+ clicks monthly.
Dub
Otherlistmonk
Marketing · Blogging
High-performance, self-hosted newsletter and mailing list manager packaged as a single binary with built-in analytics, transactional messaging, and multi-channel delivery.