Formiq is a robust, open-source form management solution designed for modern web applications. It provides a complete infrastructure for handling form submissions, including a secure API server, a developer-friendly SDK, and background workers for asynchronous processing.
- Secure Form Handling: End-to-end encryption for sensitive data and secure API key management.
- Multi-Project Support: Manage multiple projects (forms) from a single dashboard.
- Asynchronous Processing: Offload heavy tasks like email notifications and webhooks to background workers using Redis and BullMQ.
- Developer SDK: Easy-to-use TypeScript SDK with React and Next.js hooks (
useFormiq). - Analytics: Track submission counts and trends.
- Spam Protection: Built-in rate limiting and validation.
- Runtime: Bun (Fast JavaScript runtime)
- Language: TypeScript
- Framework: Express.js
- Database: MongoDB (Data persistence)
- Queue: BullMQ & Redis (Background jobs)
- Authentication: Better Auth
- Validation: Zod & Express Validator
- Server: The core API backend.
- SDK: Client-side libraries.
- Workers: Background job processors.
- Client: Frontend dashboard (Next.js).
Detailed documentation is available in the docs directory:
- Architecture: System design, data flow, and database schema.
- API Reference: Endpoints, request/response formats, and authentication.
- Setup Guide: Installation, configuration, and deployment instructions.
- Technical Decisions: Rationale behind technology choices.
- Prerequisites: Ensure you have Bun, Docker, and Node.js installed.
- Start Infrastructure: Run
docker-compose up -dto start MongoDB and Redis. - Install Dependencies: Run
bun installin the root directory (if using a monorepo workspace) or in each subdirectory. - Start Server:
cd server && bun run dev - Start Workers:
cd workers && bun run dev(ornpm run dev)
MIT