> formbricks
Collect user feedback and run in-app surveys with Formbricks — open-source experience management platform. Use when someone asks to "add surveys to my app", "Formbricks", "in-app feedback", "NPS survey", "user research", "product feedback tool", or "open-source Typeform alternative". Covers in-app surveys, website popups, link surveys, targeting, and analytics.
curl "https://skillshub.wtf/TerminalSkills/skills/formbricks?format=md"Formbricks
Overview
Formbricks is an open-source survey and feedback platform — embed surveys directly in your app, trigger them based on user actions, and collect targeted feedback. Unlike Typeform (generic forms) or Hotjar (page-level), Formbricks targets specific users at the right moment: after checkout, on feature use, at churn risk. NPS, CSAT, feature requests, bug reports — all in-context.
When to Use
- Collecting in-app feedback (NPS, CSAT, feature requests)
- Understanding why users churn or don't convert
- Running product research surveys targeted at specific segments
- A/B testing messaging or onboarding flows
- Need an open-source alternative to Typeform/SurveyMonkey
Instructions
Setup
# Self-host
docker compose up -d # From formbricks/formbricks repo
# Or install SDK for in-app surveys
npm install @formbricks/js
In-App Survey Integration
// app/layout.tsx — Initialize Formbricks in Next.js
import formbricks from "@formbricks/js/app";
if (typeof window !== "undefined") {
formbricks.init({
environmentId: process.env.NEXT_PUBLIC_FORMBRICKS_ENV_ID!,
apiHost: "https://formbricks.myapp.com", // Or cloud URL
});
}
// Identify the user (for targeted surveys)
formbricks.setUserId("user_123");
formbricks.setAttributes({
plan: "pro",
signupDate: "2026-01-15",
company: "Acme Inc",
});
Track Custom Actions (Triggers)
// components/Checkout.tsx — Trigger survey after checkout
import formbricks from "@formbricks/js/app";
function CheckoutSuccess() {
useEffect(() => {
// Track the action — surveys configured to trigger on "checkout_completed" will fire
formbricks.track("checkout_completed", {
orderValue: 99.99,
plan: "pro",
});
}, []);
return <div>Thanks for your purchase!</div>;
}
// Other trigger examples:
formbricks.track("feature_used", { feature: "export" });
formbricks.track("support_ticket_created");
formbricks.track("trial_ending");
API Usage
// api/surveys.ts — Create and manage surveys via API
const response = await fetch("https://formbricks.myapp.com/api/v1/surveys", {
method: "POST",
headers: {
"x-api-key": process.env.FORMBRICKS_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Post-Purchase NPS",
type: "app", // In-app survey
questions: [
{
type: "nps",
headline: "How likely are you to recommend us?",
lowerLabel: "Not likely",
upperLabel: "Very likely",
},
{
type: "openText",
headline: "What's the main reason for your score?",
placeholder: "Tell us more...",
},
],
triggers: [{ actionClass: "checkout_completed" }],
// Target only pro users who signed up > 30 days ago
segment: {
filters: [
{ attributeKey: "plan", condition: "equals", value: "pro" },
],
},
}),
});
Examples
Example 1: Add NPS survey after onboarding
User prompt: "Add an NPS survey that appears after a user completes onboarding."
The agent will set up Formbricks SDK, create an NPS survey triggered on the "onboarding_completed" action, and configure follow-up questions based on the score.
Example 2: Feature request collection
User prompt: "Let users submit feature requests from inside the app."
The agent will create a feedback survey with categorized questions, trigger it from a "Give Feedback" button, and set up webhook notifications to the product team.
Guidelines
- In-app surveys > email surveys — 6x higher response rate
- Trigger on actions — show surveys at the right moment, not randomly
- Target specific segments — pro users, churning users, new signups
- NPS + follow-up — always ask "why" after the score
- Don't over-survey — Formbricks has frequency limits per user
- Self-host for privacy — data stays on your infrastructure
- Webhooks for real-time — send responses to Slack, Notion, etc.
- A/B test survey copy — different headlines for different segments
- Close the loop — respond to feedback, users notice
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zoho
Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> zipkin
Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.