Experience management — surveys, responses and workflows.
Forma is a survey and experience-management platform. Collect feedback with in-app, website, link and email surveys, read the results in each survey's own summary and response views, and act on them with Workflows.
Two things are worth knowing before you compare against any upstream documentation:
- Unify Feedback and Dashboards are not part of this build. They were built on Forma Hub, an external service, and on a Cube.js semantic layer over its records. Both are gone, along with the charts and dashboards that had no data source without them. Survey response analysis is unaffected.
- The database history is a single init migration. The earlier migration history was squashed, so a database created from this repository cannot be upgraded from one that ran the old migrations.
- Every feature is on. There is no enterprise edition, licence key or per-feature entitlement here.
- Build surveys in a no-code editor with a range of question types, or start from a template.
- Target surveys at specific user groups without shipping application code.
- Share link surveys, or embed them in your website or app.
- Invite your organization to collaborate, with teams and per-workspace roles.
- Automate follow-ups with Workflows.
- Integrate with Slack, Notion, Zapier, n8n and others.
- Drive it programmatically over the v3 REST API or the built-in MCP server.
TypeScript · Next.js · React · Tailwind CSS · Prisma · Better Auth · SpiceDB · Zod · Vitest
You need Node.js (see .nvmrc), pnpm and
Docker — Docker runs PostgreSQL, Valkey, MailHog and SpiceDB for local work.
pnpm install
pnpm db:up # start the backing services, write .env from .env.example, load the SpiceDB schema
pnpm dev # run every app and workerUseful commands:
| Command | What it does |
|---|---|
pnpm build |
Production build for every package and app |
pnpm test |
Vitest suites across the workspace |
pnpm typecheck |
TypeScript across the workspace |
pnpm lint / pnpm format |
ESLint and Prettier |
pnpm test:e2e |
Playwright browser suite |
pnpm db:migrate:dev |
Apply Prisma migrations to the dev database |
AGENTS.md is the working reference for this repository: project layout, testing policy, caching rules,
i18n, and the conventions CI enforces. Read it before your first change.
Forma is AGPLv3 and can be self-hosted with Docker or the Helm chart in charts/forma. See docs/ for
the setup guides, and docker/docker-compose.yml for the production Compose stack.
Report vulnerabilities to security@ylam.ai rather than opening a public issue. See
SECURITY.md.
Private. All rights reserved.