No widget state to maintain
The isolated widget owns its open, closed and submission states outside your component tree.
React feedback widget
Load one external script after your application mounts, keep the public site key in configuration and let Feedback Bubble handle the interface.
Screenshot placeholder
React application with the feedback launcher open and a code panel showing the loader setup
Why it works
A short submission flow and useful automatic context make it easier for visitors to report something and for you to understand it.
The isolated widget owns its open, closed and submission states outside your component tree.
The loader requests the current page context when a visitor submits, not only when the app first loads.
Update the bubble in the dashboard rather than shipping another frontend bundle.
Setup
Each website keeps its own design and approved origin while every accepted message reaches the same private workspace.
Code example
Replace the example key with the value generated for your bubble.
import { useEffect } from "react";
export function FeedbackBubbleLoader() {
useEffect(() => {
const script = document.createElement("script");
script.src = "https://www.getfeedbackbubble.com/widget/v1.js";
script.dataset.site = "YOUR_SITE_KEY";
script.defer = true;
document.body.appendChild(script);
return () => script.remove();
}, []);
return null;
}Common questions
No package is required. Feedback Bubble uses a small external loader so the widget configuration remains independent of your React bundle.
No. It is a public identifier. Server-side origin checks determine where that key is allowed to work.
No. Visitors submit directly through the website widget. If reply requests are enabled, they can optionally leave an email address.
Create your first feedback bubble, match it to your website and install it with one script.