Quickstart

Embed a feature-request board in minutes. Free local/demo forever; BYO ($9.99) when you own posts; Hosted ($19.99) when Bootstrapware stores posts and votes.

1. Install

pnpm add @bootstrapware/feedback

2. Choose a mode

Local / demo: createLocalAdapter (free).

BYO ($9.99): pass a FeedbackAdapter (or createByoAdapter) plus optional hosted board config for toggles.

Hosted ($19.99): omit adapter; pass boardId + publishableKey.

Resolve order: explicit adapter → Hosted (boardId + publishable key) → local. See Modes.

3. Embed (local)

Use a Client Component in Next.js App Router.

"use client";

import { Feedback, createLocalAdapter } from "@bootstrapware/feedback";
import "@bootstrapware/feedback/styles.css";

export function ProductFeedback() {
  return (
    <Feedback
      user={{ id: "user_1", name: "Ada" }}
      adapter={createLocalAdapter({ storageKey: "demo-feedback" })}
    />
  );
}

4. Embed (Hosted)

After you create and publish a board in the dashboard (or via secret key / MCP), pass the board id and a publishable key:

<Feedback
  boardId="brd_..."
  publishableKey="bsw_live_pub_..."
  user={currentUser}
/>

Optional apiBaseUrl defaults to https://feedback.bootstrapware.co. Live config needs BYO or Hosted; live Hosted writes need Hosted.

5. Identity

Always pass user from your session. Bootstrapware does not authenticate end users. id must be opaque and stable. Optional name / email / avatarUrl are display metadata only. Details: Identity.

6. Statuses and limits

Status badges use open | planned | in_progress | shipped | declined (not completed). Title max 200 characters; body max 5000; plain text.

After 4 characters in the title, similar requests appear. Hosted and BYO search with listPosts({ q }) so matches are not limited to the loaded page; local uses in-memory matching. Clicking one jumps to the post and focuses Vote.

7. Security

Publishable keys may appear in the browser. Secret keys stay server-side. Never send post title/body through MCP. Hosted stores plain text, you moderate content in the dashboard. Embed-only: no public board URL.

Related: Modes · Identity · Adapter · React component · Next.js guide · Live demo