Should I self-host Typeform?
Formbricks covers forms, surveys, logic jumps and webhooks with a modern editor. Typeform's $39/mo Basic caps responses; your Postgres doesn't. One app container plus a database and you're collecting.
Typeform's distinctive one-question-at-a-time UX polish
Their template gallery and integrations marketplace
forms & surveys · logic jumps · response collection · webhooks & integrations
* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-06.
Runs comfortably on a real VPS (2 GB+).


The image runs `pnpm prisma migrate deploy` at first boot and corepack downloads pnpm from npm at runtime — behind a TLS-intercepting proxy this dies with SELF_SIGNED_CERT_IN_CHAIN; on a normal box it just works, but airgapped/proxied environments should know
Not boot-verified in this session — compose is CI-gated (weekly compose-check must pass before this claim hardens)
# Formbricks — surveys; node app + postgres. Sidecar probe, generous first-boot window (migrations).
services:
formbricks:
image: formbricks/formbricks:latest
container_name: formbricks
restart: unless-stopped
depends_on:
formbricks-db:
condition: service_healthy
environment:
WEBAPP_URL: http://localhost:3005
DATABASE_URL: postgresql://formbricks:formbricks@formbricks-db:5432/formbricks
NEXTAUTH_URL: http://localhost:3005
NEXTAUTH_SECRET: 0123456789abcdef0123456789abcdef
ENCRYPTION_KEY: 0123456789abcdef0123456789abcdef
CRON_SECRET: 0123456789abcdef0123456789abcdef
ports:
- "3005:3000"
probe:
image: busybox:stable
network_mode: "service:formbricks"
depends_on:
- formbricks
command: sh -c 'while true; do sleep 30; done'
healthcheck:
test: ["CMD-SHELL", "nc -z localhost 3000 || exit 1"]
interval: 5s
timeout: 5s
retries: 90
start_period: 60s
formbricks-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: formbricks
POSTGRES_PASSWORD: formbricks
POSTGRES_DB: formbricks
volumes:
- formbricks-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U formbricks"]
interval: 5s
timeout: 5s
retries: 12
volumes:
formbricks-db:
Want a guided install instead? caniselfhostit.com/typeform has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
FULL TIMED LOG
# Typeform — verdict log - **Date:** 2026-08-10 - **Verdict:** YES — worth it - **Protocol:** v1 (2GB reference env, Docker preinstalled, AI assistant: claude-code) ## Setup evidence - Compose: `compose/typeform-formbricks.yml` - Boot: **CI-gated** — not verified on this box; the weekly compose-check workflow is the gate - Setup time recorded: 40 min (boot + configuration to first working workflow) ## What broke / notes - The image runs `pnpm prisma migrate deploy` at first boot and corepack downloads pnpm from npm at runtime — behind a TLS-intercepting proxy this dies with SELF_SIGNED_CERT_IN_CHAIN; on a normal box it just works, but airgapped/proxied environments should know - Not boot-verified in this session — compose is CI-gated (weekly compose-check must pass before this claim hardens) ## The call Formbricks covers forms, surveys, logic jumps and webhooks with a modern editor. Typeform's $39/mo Basic caps responses; your Postgres doesn't. One app container plus a database and you're collecting.