Skip to content

bensblueprints/form-builder

Repository files navigation

Form Builder

License: MIT

Self-hosted form builder + submissions inbox. Pay once, own it forever — no Typeform subscription, no response caps.

Build beautiful "one question per screen" forms (or classic single-page forms), share a link or embed them anywhere, and collect unlimited responses into your own inbox — on your own server, with your own database. Typeform wants $348/yr and caps your responses. This runs on a $5 VPS forever.

Screenshot

Features

  • Drag-orderable field editor — 10 field types: short text, long text, email, number, dropdown, radio, checkboxes, date, file upload, star rating (1–5). Required toggle, placeholder, and help text per field.
  • Two display modes — clean one-question-per-screen "Typeform-style" flow with keyboard navigation, or classic all-on-one-page. Per-form setting.
  • Form settings — title, description, submit button text, success message or redirect URL, accent color, open/closed toggle.
  • Submissions inbox — table view, detail drawer, one-click CSV export, delete, downloadable file answers.
  • File uploads — stored locally with size and type limits. Your files never touch a third-party.
  • Spam protection — honeypot field + per-IP rate limiting, client and server validation.
  • Email notifications — bring your own SMTP, get an email per submission.
  • Embed anywhere — copy-paste iframe snippet from the Share tab.
  • Dark, modern UI — React + Tailwind + Framer Motion. Your respondents will think you're paying $29/mo.
  • 100% local — SQLite database, local file storage, zero telemetry, zero external calls.

Quick start

npm i
npm run build
npm start          # → http://localhost:5305

Copy .env.example to .env and set ADMIN_PASSWORD. Log in at /admin, build a form, share /f/your-slug.

Desktop mode

Run it as a desktop app, or deploy to a $5 VPS when you need it public:

npm run desktop    # Electron window, auto-logged-in, data in your user profile

Docker

docker compose up -d   # SQLite db + uploads persisted in the form-data volume

Form Builder vs Typeform

Form Builder Typeform
Price $39 one-time $29/mo ($348/yr)
Responses Unlimited 100/mo (Basic)
Forms Unlimited Capped by plan
File uploads Included, your disk Higher tiers only
Data ownership Your server, your SQLite file Their cloud
One-question-per-screen UX
CSV export
Custom accent color / redirect Paid tiers
Works offline / air-gapped

☕ Skip the setup — get the 1-click installer

Don't want to touch a terminal? Grab the packaged one-click installer (plus updates and setup support) on Whop:

→ Get the installer

Pay once. Own it forever. No subscription.

Tech stack

  • Backend: Node 20+, Express, better-sqlite3, Multer (uploads), Nodemailer (BYO SMTP)
  • Frontend: React 18, Vite, Tailwind CSS v4, Framer Motion, Lucide icons
  • Desktop: thin Electron wrapper around the same server (electron-builder NSIS config included)
  • Storage: single SQLite file + local uploads/ folder — trivial to back up

Configuration

All via .env (see .env.example):

Var Default
PORT 5305 HTTP port
ADMIN_PASSWORD change-me Admin login
DATA_DIR ./data SQLite db + uploads
MAX_UPLOAD_MB 10 Per-file upload limit
SMTP_HOST/PORT/USER/PASS/FROM Optional email notifications

Development

npm run dev        # Vite dev server on :5306, proxies /api to :5305
npm start          # API server
npm test           # end-to-end smoke test (boots real server, real submissions)

License

MIT — see LICENSE.

About

Self-hosted form builder + submissions inbox — Typeform-style or classic forms, file uploads, CSV export, spam protection. Desktop app or $5 VPS. Pay once.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages