The problem
Teams building custom forms either bolt on a heavyweight third-party service or hand-roll a form backend per project, redoing auth, storage, and rendering every time. No reusable, self-hostable Django app covered drag-and-drop building plus an embeddable widget out of the box.
Approach
A reusable Django app for the form backend (models, DRF views/serializers, auth) paired with a React/Tailwind frontend, shippable standalone or vendored into an existing Django project. Ships with an embeddable widget, a full REST API, multi-language UI copy (English, Spanish, Chinese) shared between backend and frontend, and a Docker production stack (Postgres, Redis, gunicorn, nginx). CI runs Python lint, backend tests, JS lint, and frontend build on every PR.
Outcome
A drag-and-drop form builder with 10 field types, custom branding, and three ways to reuse it elsewhere: embeddable widget, REST API, or vendoring the Django app directly.
Highlights
- Drag-and-drop builder with 10 field types, including file upload with attachments.
- Embeddable widget to drop a form into any website, plus a full REST API.
- Reusable Django app: vendor into an existing project or run standalone.
- Multi-language UI copy (English, Spanish, Chinese) via shared label-universe.
- Docker-ready production stack: Postgres, Redis, gunicorn, nginx.
- CI on every PR: Python lint, backend tests, JS lint, frontend build.

