Feedback → pull request

Every note is a spark.
We turn it into a pull request.

Paste one line and any site can collect feedback, bugs, and ideas — spam-filtered, beautifully. Then the part nobody else does: your team or your AI agents open the pull request that fixes it — drafted, linked, and merged by a human.

one paste · no backend <!-- drop this on any page --> <script src="https://feedback.remotebb.com/widget.js" data-site="fb_pub_…"></script>
Get your snippet

no backend · static-site friendly · self-host or hosted

newpricing page

“the annual toggle doesn't update the total 😕”

resolved PR #142 merged ✓
the loop · this is the whole product
new triaged in progress · PR #142 resolved

Every other feedback tool ends at the inbox. This one carries the spark all the way down the wire — from someone typed this to an agent shipped the fix, with the PR linked right back to the note. We read every note. Then we ship it.

how it works

Three steps. The third one is the magic.

1

Paste the snippet

One <script> tag, or a plain <form> for fully static sites. No backend, no database, no cron. Thirty seconds.

2

Visitors leave notes

A lightbulb button → type → send. Spam-filtered on the way in, stored, and fanned out to Slack or a webhook the instant it lands.

3

You — or your agents — act

Triage in the dashboard, or let an agent in Claude Code open the PR that fixes it. The note moves to resolved with the fix linked.

what's in the box

Everything you'd duct-tape together — handcrafted into one.

Backend-free embed

One script tag or a plain form. The browser posts cross-origin; the site needs nothing of its own. Static-site friendly by design.

Delightful by default

Lightbulb button, single-textarea modal, type selector, ⌘+Enter, and a confetti thank-you you can make your own.

Feedback → PR loop

A REST API and an MCP server let your team or your coding agents read a note and open the pull request that closes it.

Fan out anywhere

One unified pipe. Slack and signed webhooks today — and a webhook is the Zapier / Make / Sheets path. Telegram & email next.

Thumbs up / down

One-tap reactions, per page or per feature, when a full note is more than you need.

Yours, branded

Pick the color or match the host site automatically. Whitelabel the widget, the emails, the dashboard.

built for agentic teams

The first feedback tool your AI agents can actually act on.

It speaks MCP. An agent in Claude Code or Cursor reads a bug, finds the file, and opens a draft PR a human merges — with the fix linked back to the note. Git access is brokered through a GitHub App: per-repo, one-hour scoped tokens, never a stored credential. The agent is treated as a careful contributor, not a trusted teammate.

mcp · the agent's view # an agent triaging your inbox feedback.list(status="new") feedback.open_pr(id="FB-142", repo="acme/site") → draft PR #142 opened · linked · awaiting review
secure by construction

Your public key isn't a secret. The security doesn't depend on it being one.

Six controls ship in the smallest build and never get cut.

Origin allowlist

The embed key is a routing ID. Submissions are authorized by where they come from, plus Turnstile and rate limits — not by hiding the key.

Honeypot + timing token

A signed timing token and a hidden trap stop ~99% of bots for near-zero friction, with a fake-200 so they can't learn.

SSRF-safe outbound

Every webhook call resolves, validates, and pins the IP — private, loopback, and cloud-metadata ranges are blocked. https-only, no redirects.

Rate-limited per IP & site

Sliding windows on both axes, with the real client IP verified end-to-end. Floods get shed at the edge.

Encrypted at rest

Connector secrets are AES-256-GCM encrypted before anything touches a backup. Submitter IPs are hashed, never stored raw.

Tenant-isolated

Every query runs through one scoped repository. Wrong owner → 404. One tenant can never see another's notes.

run it your way

Hosted, or your box. No asterisks.

Start hosted in two minutes, or take the Docker image and run it on your own server with your own database. Either way it's one auto-updating widget and nothing to maintain. Generous by default — your data, your rules, no nickel-and-diming.

Get your snippet Read the docs

Free while in beta · spark → shipped