Three ways to embed
Pick an option, then choose your framework. Swap your-board-slug for your board slug. Host defaults to https://www.feedfr.com.
1. Floating widget
Loads widget.js once. Adds a fixed “Give Feedback” button and a slide-up panel with the submit form. Best for product apps where feedback should always be one click away.
Best for: SaaS apps, dashboards, marketing sites — site-wide feedback button
Framework
<!-- Paste before </body> -->
<script
src="https://www.feedfr.com/widget.js"
data-board="your-board-slug"
data-tenant="your-company"
data-host="https://www.feedfr.com"
data-color="#03AED2"
async
></script>Replace your-board-slug with your board slug (from /b/your-board-slug). For the full board iframe, use your public URL such as https://acme.feedfr.com/b/feedbackboard. Boards must be public for embed submissions.
Compare options
| Option | What users see | How it loads |
|---|---|---|
| Floating widget | Fixed button + panel with submit form | widget.js/embed/b/{slug} |
| Full board iframe | Posts, votes, filters — full board UI | /b/{slug} or tenant host |
| Submit form iframe | Compact form only (no floating chrome) | /embed/b/{slug} |
Embed POST API
The widget and form post to a public endpoint for public boards. No API key. Private boards return 403. You can also call this from your own UI.
POST https://www.feedfr.com/api/embed/boards/{slug}/posts
Content-Type: application/json
{
"title": "Dark mode for settings",
"description": "Hard to use at night.",
"category": "FEATURE",
"name": "Alex",
"email": "alex@example.com"
}
// 201
{ "success": true, "post": { "id": "...", "title": "...", "status": "UNDER_REVIEW" } }title,descriptionrequiredcategoryoptional (FEATURE, BUG, ENHANCEMENT, QUESTION, OTHER)name/emailoptional attribution- Rate limited per IP; fires
post.createdwebhooks
CSP and checklist
- 1.Board is public (embed API rejects private boards).
- 2.Allow scripts / frames for
https://www.feedfr.comandhttps://*.feedfr.comif you set Content-Security-Policy (script-src,frame-src). - 3.Use the board slug from
/b/your-slug, not only the company subdomain name (unless they match).
Create a board, then embed it
Free forever tier includes the widget and public embed API. No credit card required.