Deploy Formbricks Experience Management | Open Source Typeform Alternative
Self Host Formbricks. In-app surveys, NPS, CSAT, and feedback collection
pgvector
Just deployed
/var/lib/postgresql
Redis
Just deployed
/data
Formbricks
Just deployed
Deploy and Host Formbricks on Railway
Deploy Formbricks on Railway to self-host a privacy-first survey and experience management platform. Formbricks is an open-source alternative to Typeform, SurveyMonkey, and Qualtrics that gives you full control over your survey data with unlimited responses.
This Railway template pre-configures Formbricks with PostgreSQL (pgvector-enabled) for data storage and Redis for caching and rate limiting, giving you a production-ready survey platform in minutes.
Getting Started with Formbricks on Railway
After deployment completes, open your Railway-generated public URL. Formbricks redirects to the setup wizard at /setup/intro where you create your admin account and organization. No default credentials are used — you set your own email and password during first-time setup.
Once registered, create your first survey from the dashboard. Choose between link surveys (shareable URLs), website surveys (embedded via JavaScript snippet), or in-app surveys (integrated with your product via the Formbricks SDK). The survey builder offers 20+ question types including NPS, CES, CSAT, open text, and multi-choice with skip logic and conditional branching.
New user signups are disabled by default — additional team members join via invite links from the admin dashboard.
About Hosting Formbricks
Formbricks is an open-source experience management suite built on Next.js, designed for product teams that need granular control over user feedback collection. It handles the full survey lifecycle — creation, targeting, distribution, and analytics — in a single self-hosted platform.
- In-app surveys with precise user targeting based on attributes, events, and segments
- Website surveys embeddable via a lightweight JavaScript snippet
- Link surveys with custom branding and shareable URLs
- 20+ question types including NPS, CES, CSAT, matrix, ranking, and file upload
- Skip logic and conditional branching for dynamic survey flows
- Built-in analytics with response summaries, charts, and CSV/JSON export
- Webhooks and integrations with Slack, Notion, Google Sheets, Airtable, and Zapier
- Multi-language support for international survey distribution
The template deploys three services: Formbricks (Next.js app), PostgreSQL with pgvector for vector-enabled data storage, and Redis for caching and rate limiting.
Why Deploy Formbricks on Railway
- Unlimited survey responses with no per-response fees
- Full data ownership — survey data never leaves your infrastructure
- One-click deploy with PostgreSQL and Redis pre-configured
- Automatic HTTPS and custom domain support
- Scale resources independently per service
Common Use Cases for Self-Hosted Formbricks
- Product feedback loops — embed in-app NPS and feature satisfaction surveys triggered by specific user actions
- Customer research — distribute branded link surveys for user interviews, market research, and beta testing programs
- Employee engagement — run anonymous pulse surveys and eNPS tracking across distributed teams
- GDPR-compliant data collection — self-host in your own region to meet data residency and privacy requirements
Dependencies for Self-Hosted Formbricks
- Formbricks —
ghcr.io/formbricks/formbricks:latest— Next.js survey application - PostgreSQL —
pgvector/pgvector:pg17— database with vector extension support - Redis —
redis:8.2.1(Railway-managed) — caching and rate limiting
Environment Variables Reference for Formbricks on Railway
| Variable | Description | Example |
|---|---|---|
WEBAPP_URL | Public-facing app URL | https://${{RAILWAY_PUBLIC_DOMAIN}} |
NEXTAUTH_URL | NextAuth callback URL (same as WEBAPP_URL) | https://${{RAILWAY_PUBLIC_DOMAIN}} |
DATABASE_URL | PostgreSQL connection string | postgresql://postgres:...@Postgres:5432/formbricks |
NEXTAUTH_SECRET | Session signing and encryption key | ${{secret(32)}} |
ENCRYPTION_KEY | 2FA and link survey URL encryption | ${{secret(64)}} |
CRON_SECRET | API secret for cron job endpoints | ${{secret(32)}} |
REDIS_URL | Redis connection string | redis://default:...@Redis:6379 |
Deployment Dependencies
- Runtime: Node.js 18+, Next.js 16
- Docker Hub: formbricks/formbricks (archived — now on GHCR)
- GitHub: formbricks/formbricks — 13k+ stars
- Docs: formbricks.com/docs/self-hosting
Hardware Requirements for Self-Hosting Formbricks
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB | 4 GB |
| Storage | 8 GB SSD | 20 GB SSD |
| Runtime | Docker | Docker Compose |
Self-Hosting Formbricks with Docker
Pull the official image from GitHub Container Registry:
docker pull ghcr.io/formbricks/formbricks:latest
Run Formbricks with Docker Compose using the official configuration:
services:
postgres:
image: pgvector/pgvector:pg17
volumes:
- postgres:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: your-secure-password
POSTGRES_DB: formbricks
redis:
image: valkey/valkey:latest
command: valkey-server --appendonly yes
volumes:
- redis:/data
formbricks:
image: ghcr.io/formbricks/formbricks:latest
ports:
- "3000:3000"
environment:
WEBAPP_URL: https://your-domain.com
NEXTAUTH_URL: https://your-domain.com
DATABASE_URL: postgresql://postgres:your-secure-password@postgres:5432/formbricks?schema=public
NEXTAUTH_SECRET: your-nextauth-secret
ENCRYPTION_KEY: your-encryption-key
CRON_SECRET: your-cron-secret
REDIS_URL: redis://redis:6379
depends_on:
- postgres
- redis
volumes:
postgres:
redis:
Generate secrets with openssl rand -hex 32 for NEXTAUTH_SECRET, ENCRYPTION_KEY, and CRON_SECRET.
How Much Does Formbricks Cost to Self-Host?
Formbricks is open-source under AGPLv3 with unlimited responses when self-hosted — no per-response fees or usage caps. The cloud version offers a free tier with 250 responses/month and paid plans starting at $30/month. Enterprise features (SSO, role management, advanced targeting) require a separate license key. On Railway, your only cost is infrastructure — typically $5–15/month for a small to medium survey deployment.
Formbricks vs Typeform
| Feature | Formbricks | Typeform |
|---|---|---|
| Open Source | Yes (AGPLv3) | No |
| Self-Hosting | Full Docker support | Not available |
| Pricing | Free (self-hosted) | From $25/mo |
| In-App Surveys | Native SDK | Limited |
| Response Limits | Unlimited | 10/mo (free) |
| Data Ownership | Full control | Cloud only |
| Skip Logic | Yes | Yes |
| Integrations | Slack, Notion, Sheets, Zapier | 120+ native |
Formbricks is purpose-built for product teams needing in-app feedback with precise user targeting. Typeform excels at standalone conversational forms with high completion rates but lacks self-hosting and charges per response.
FAQ
What is Formbricks and why should you self-host it? Formbricks is an open-source experience management platform for creating surveys, collecting feedback, and analyzing responses. Self-hosting gives you unlimited responses, full data ownership, and compliance with data residency requirements like GDPR — all without per-response fees.
What does this Railway template deploy for Formbricks?
This template deploys three services: the Formbricks Next.js application (ghcr.io/formbricks/formbricks:latest), PostgreSQL with pgvector extension (pgvector/pgvector:pg17) for data storage, and Railway-managed Redis for caching and rate limiting. All services are pre-configured to communicate over Railway's private network.
Why does Formbricks need PostgreSQL with pgvector on Railway? Formbricks requires the pgvector extension for vector similarity search, which powers upcoming AI-driven features including intelligent survey analysis and response clustering. Standard PostgreSQL without pgvector will fail during database migrations.
How do I embed Formbricks surveys in my website or app?
After creating a survey in the dashboard, go to the survey settings and choose your distribution channel. For website surveys, copy the JavaScript snippet and add it to your site's `` tag. For in-app surveys, install the Formbricks SDK (@formbricks/js) and initialize it with your environment ID and API host URL pointing to your Railway deployment.
Can I use Formbricks for NPS and customer satisfaction surveys? Yes. Formbricks includes dedicated NPS (Net Promoter Score), CSAT (Customer Satisfaction), and CES (Customer Effort Score) question types with built-in analytics dashboards that calculate scores automatically and track trends over time.
How do I enable email notifications in self-hosted Formbricks on Railway?
Set the SMTP environment variables (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, MAIL_FROM) in the Formbricks service on Railway. Without SMTP configured, email verification and password reset are disabled by default — the template ships with EMAIL_VERIFICATION_DISABLED=1 and PASSWORD_RESET_DISABLED=1.
Template Content
