Own your form pipeline
Submify is a self-hosted Form-Backend-as-a-Service. POST JSON from any HTML form or static site, then manage submissions, exports, Telegram alerts, and S3 uploads from your own dashboard — on your own infrastructure.
curl -fsSL https://raw.githubusercontent.com/Raktim94/Submify/main/install.sh | bashWhy Submify
Built for ownership
Not another SaaS holding your form data hostage behind a monthly bill.
Own your data
Submissions live in a PostgreSQL database on your server. No third party ever sees them in transit or at rest.
Deploy in minutes
One installer script brings up Nginx, the API, the dashboard, and Postgres as a single Docker Compose stack.
Open source
AGPL-3.0 licensed, source available on GitHub. Audit it, fork it, or self-host a modified version — if you run a modified version as a network service for others, share that source back.
No vendor lock-in
Standard Postgres, standard S3 API, standard Docker. Move your data or your deployment anywhere, any time.
Features
Everything a form backend needs
No middleman on your submissions — every feature runs on infrastructure you control.
Per-project API keys
Each project gets its own public/secret key pair. One account key works across every site you embed it on — no per-form setup dance.
A real dashboard
Review, search, and bulk-delete submissions per project. Everything is scoped by account and project — nobody else's data is ever visible.
Export to XLSX or PDF
Pull full project exports any time, capped at 5,000 rows per project so you stay in control of storage.
Telegram notifications
Optional per-project or account-level Telegram alerts the moment a form is submitted — no email server required.
Optional S3 uploads
Connect any S3-compatible bucket (AWS S3, Cloudflare R2, MinIO, Wasabi) per project for presigned file uploads. Submify never stores the file bytes.
Your infrastructure, your data
Runs as one Docker Compose stack — Postgres, the Go API, the dashboard, and Nginx. No third-party SaaS sits in the request path.
Developer-first
One endpoint, any stack
POST JSON to /api/submit with your project's public key. Works from plain HTML, React, Vue, or a server route.
curl -X POST https://your-submify-host.com/api/submit \
-H "Content-Type: application/json" \
-H "x-api-key: pk_live_your_public_key" \
-d '{
"data": { "name": "John Doe", "email": "john@example.com" },
"files": []
}'your-submify-host.com with your own domain and pk_live_your_public_keywith the public key from your project's dashboard. Full request/response reference lives in the API docs.Architecture
One Docker Compose stack
Nginx, the Go API, the dashboard, and PostgreSQL — all running on your own server.
Browser / client sites
Any HTML form or fetch() call
Nginx — single published port
Routes /api/* to the Go API, everything else to the dashboard
Go API (Gin)
Auth, projects, submissions, exports, rate limiting
Next.js dashboard
Review submissions, manage projects and keys
PostgreSQL
Single database, rows scoped by user_id / project_id
External S3-compatible storage (optional)
AWS S3, Cloudflare R2, MinIO, Wasabi — per project
Comparison
Why not just use Formspree?
Hosted form services are convenient — until you count the cost of not owning your data.
| Feature | Submify | Formspree | Getform |
|---|---|---|---|
| Self-hosted | |||
| You own the database | |||
| Docker Compose deploy | |||
| AGPL-3.0 licensed / source available | |||
| Per-project public/secret keys | |||
| S3-compatible file uploads | Limited | Limited | |
| Telegram notifications | |||
| XLSX / PDF export | CSV only | ||
| Submission cap | 5,000 / project | Plan-based | Plan-based |
| Monthly cost at scale | $0 (your server) | $$$ | $$$ |
Comparison reflects each provider's publicly documented free/entry plans as of this writing — check their sites for current pricing.
Get started
Install on your own server
Pick your platform — every path ends with the same Docker Compose stack.
One command clones the repo, generates strong random secrets on first run, and brings up the full stack. Requires Docker Engine and the Compose v2 plugin. If you installed Docker from Debian's docker.io package, see the Debian prerequisite steps in the docs before running.
One-line installer (requires git + Docker Compose v2)
curl -fsSL https://raw.githubusercontent.com/Raktim94/Submify/main/install.sh | bashRequires Docker Engine and the Compose v2 plugin. Once the containers are up, open http://localhost:2512 and create your first account at /register.
Requirements
- Docker Engine
- 20.10 or newer
- Docker Compose
- v2 plugin
- RAM
- 512 MB minimum
- Disk
- ~2 GB for images + data
Roadmap
Actively developed
What's already in the box, and what's being worked on next.
Shipped
- Per-project public/secret API keys
- Dashboard — search, review, bulk-delete
- XLSX and PDF export (5,000 rows/project)
- Telegram notification integration
- Optional S3-compatible file uploads
- Client portal — password-protected, read-only sharing
- One-line installer with generated secrets
Planned
- Email notifications
- Outbound webhooks
- Slack integration
- OAuth sign-in
- Audit log
Have a feature request? Open an issue on GitHub.
Who made this
NODEDR INFOTECH PRIVATE LIMITED
Submify is built and maintained by NODEDR INFOTECH PRIVATE LIMITED, led by Raktim Ranjit(Lead Developer & Founder).
FAQ
Frequently asked questions
Ready to own your form pipeline?
One command, your own server, your own data.