Overview
Discover what makes OpnForm powerful
OpnForm is a full‑stack, open‑source platform for building and hosting interactive forms, surveys, and event registrations. From a developer’s perspective it functions as a **form‑as‑a‑service** backend that exposes a rich API surface for creating, querying, and managing forms while providing a lightweight front‑end that can be embedded anywhere. The core technical workflow involves a REST/GraphQL API that persists form definitions and submissions in a PostgreSQL database, an optional Redis layer for caching and rate‑limiting, and a React/TypeScript SPA that renders forms on the client side. This separation of concerns makes OpnForm a compelling choice for teams that need to ship form‑centric features quickly without building a custom backend from scratch.
Backend
Frontend
Containerization
Security
Overview
OpnForm is a full‑stack, open‑source platform for building and hosting interactive forms, surveys, and event registrations. From a developer’s perspective it functions as a form‑as‑a‑service backend that exposes a rich API surface for creating, querying, and managing forms while providing a lightweight front‑end that can be embedded anywhere. The core technical workflow involves a REST/GraphQL API that persists form definitions and submissions in a PostgreSQL database, an optional Redis layer for caching and rate‑limiting, and a React/TypeScript SPA that renders forms on the client side. This separation of concerns makes OpnForm a compelling choice for teams that need to ship form‑centric features quickly without building a custom backend from scratch.
Architecture
- Backend – The API is written in Node.js (TypeScript) using the NestJS framework. It follows a modular, service‑oriented architecture with dependency injection, making it straightforward to replace or extend individual components (e.g., switching the email provider). The data layer uses TypeORM to map entities to a PostgreSQL database, while optional Redis is used for session storage and caching. The API also exposes a WebSocket gateway for real‑time submission events.
- Frontend – A lightweight React + Vite bundle delivers the form builder UI and embed widgets. The builder supports drag‑and‑drop field placement, conditional logic, and theme editing, all powered by a schema‑driven form renderer that serializes to JSON for persistence.
- Containerization – The entire stack is distributed as Docker images (
jhumanj/opnform-api,jhumanj/opnform-client). A Docker Compose file in the repository demonstrates a single‑node deployment, while Helm charts are planned for Kubernetes deployments. - Security – The application implements CSRF protection, JWT authentication for API access, and file upload sanitization. Captcha integration (reCAPTCHA) is optional but recommended for public forms.
Core Capabilities
- Form Definition API – CRUD endpoints for form metadata, field schemas, and conditional logic. Forms are stored as JSON documents that can be versioned.
- Submission API – Secure endpoints for posting responses, including file uploads. Submissions are stored in a relational schema that allows efficient querying and CSV export.
- Webhook & Notification System – Developers can register HTTP webhooks, Slack/Discord messages, or email notifications that trigger on new submissions. The webhook payload includes the full submission JSON and metadata.
- Analytics SDK – A lightweight JavaScript snippet can be embedded alongside the form to push usage metrics (view counts, conversion rates) back to the API.
- Extensibility Hooks – The API exposes hooks for custom validation, transformation, or routing logic via middleware registration in NestJS. Plugins can also be added by mounting additional modules on the server.
Deployment & Infrastructure
OpnForm is designed for self‑hosting in a variety of environments:
- Bare Metal / VM – A single Docker container per service (API, client) with a PostgreSQL instance. Minimal resource footprint (~256 MiB RAM per container).
- Container Orchestration – Kubernetes manifests (Helm charts) enable horizontal scaling of the API layer, automatic rolling updates, and persistent volumes for PostgreSQL.
- CI/CD – The repository includes GitHub Actions that build Docker images, run tests, and push to Docker Hub. Developers can integrate these pipelines into their own CI/CD workflows.
- High Availability – By running multiple API replicas behind a load balancer and using PostgreSQL replication, the platform can sustain traffic spikes typical of event registrations or marketing campaigns.
Integration & Extensibility
OpnForm’s plugin architecture allows developers to extend the core functionality without modifying upstream code:
- Custom Field Types – New React components can be registered via a plugin manifest; the backend accepts their schema definitions.
- Third‑Party Auth – OAuth providers can be wired into the NestJS authentication module to allow single‑sign‑on for form creators.
- Data Export – Beyond CSV, developers can hook into the submission stream to push data to external analytics platforms (Mixpanel, Segment) or data warehouses (Snowflake, BigQuery).
- Webhooks – The built‑in webhook system supports both outgoing and incoming events, making it easy to integrate with CI pipelines or trigger serverless functions.
Developer Experience
- Documentation – The official docs (docs.opnform.com) cover API reference, deployment guides, and plugin development. The codebase follows clean architecture principles, making navigation intuitive for newcomers.
- Community – A Discord server and GitHub Discussions channel provide rapid support. The AGPLv3 license encourages contributions while protecting the open‑source nature of the project.
- Testing – Unit and integration tests are written in Jest, with coverage reports available on PRs. The Docker Compose test suite runs end‑to‑end scenarios against the API and client.
Use Cases
- Event Management – Create RSVP forms with file uploads (e.g., photo ID) and send Slack notifications to the event team.
- Customer Feedback – Deploy a survey with conditional logic and export results to a CSV for analysis in BI tools.
- Internal HR Forms – Host leave requests or expense claims with secure authentication and audit trails.
- Marketing Campaigns – Embed lead‑generation forms on landing pages, trigger email confirmations, and track conversion rates via the analytics SDK.
Advantages
- **Performance
Open SourceReady to get started?
Join the community and start self-hosting OpnForm today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
EverShop
Modular, TypeScript-first eCommerce platform
Komga
Self‑hosted comic and eBook media server
Apaxy
Customisable Apache directory listing theme
WeTTY
Web terminal access over HTTP/HTTPS
Family Accounting Tool
Track family finances, debts, and hidden costs
Syncloud
Self‑hosted personal cloud for secure, private apps
