Quick Install
Paste this prompt into Cursor, Claude Code, or any coding agent — it will install and wire up the widget for you automatically.
Install @supafeed/sdk in this React app:
1. npm install @supafeed/sdk
2. Import SupaFeedProvider:
import { SupaFeedProvider } from "@supafeed/sdk/react";
3. Wrap the root component (e.g. in providers.tsx or layout.tsx):
<SupaFeedProvider
enabled={Boolean(process.env.NEXT_PUBLIC_SUPAFEED_API_KEY)}
config={{
apiKey: process.env.NEXT_PUBLIC_SUPAFEED_API_KEY ?? "",
position: "bottom-right",
}}
>
{children}
</SupaFeedProvider>Getting Started
SupaFeed is a drop-in feedback widget with an AI-powered follow-up agent. Wrap your app once with the provider — the widget appears on every page automatically.
Install the package
npm install @supafeed/sdkReact — add the provider
Add SupaFeedProvider to your root providers file. It reads config from env at runtime so it only activates when an API key is present.
import { SupaFeedProvider } from "@supafeed/sdk/react";
export function Providers({ children }: { children: React.ReactNode }) {
return (
<SupaFeedProvider
enabled={Boolean(process.env.NEXT_PUBLIC_SUPAFEED_API_KEY)}
config={{
apiKey: process.env.NEXT_PUBLIC_SUPAFEED_API_KEY ?? "",
position: "bottom-right", // or "bottom-left"
}}
>
{children}
</SupaFeedProvider>
);
}Vanilla JS (non-React)
import { init } from "@supafeed/sdk";
init({
apiKey: "ff_live_abc123",
position: "bottom-right",
});Styling
Styling is managed server-side from your dashboard — changes apply instantly with no deploy needed.
Agent Behavior
The AI that converses with your users is fully configurable from your dashboard. Define the tone, what questions it asks, and when to wrap up — no code changes needed.
Example prompt
“You are a helpful product assistant. Ask one short clarifying question about the user’s feedback to better understand the issue. Keep responses brief and conversational. After one follow-up, thank them and close the conversation.”
Data Captured
Each feedback session automatically captures context alongside the conversation.
urlPage URL where the widget was triggered
https://yourapp.com/dashboard
userAgentBrowser and OS info
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...
timestampISO 8601 time the session was submitted
2024-01-15T10:32:00.000Z
messagesFull conversation between user and agent
[{ role: "user", content: "..." }, ...]
sessionIdUnique ID for the feedback session
sess_abc123
user.idOptional — your user's ID if passed via config
user_xyz
user.emailOptional — email if passed via config
jane@example.com
user.nameOptional — display name if passed via config
Jane Doe
Pass user info
<SupaFeedProvider
config={{
apiKey: "ff_live_abc123",
user: {
id: currentUser.id,
email: currentUser.email,
name: currentUser.name,
},
}}
>
{children}
</SupaFeedProvider>Categorization
SupaFeed automatically categorizes each session so you can triage at a glance. The AI agent assigns a category at the end of every conversation.
Bug
Something is broken or not working as expected
Feature Request
A request for new functionality
Improvement
Feedback on existing features or UX
Other
Doesn't clearly fit the other categories