feedback-hub

Read your users
like email.

A 4 KB widget on any page. A focused, keyboard-first inbox for the bugs, ideas, and praise that come back. Nothing else.

In use at resibow.com · hris

Send feedback×
BBug
IIdea
PPraise
?Question

The receipt scanner hangs on a blank screen after I upload a PDF larger than 5 MB. Refreshing fixes it.

Reproduced on Chrome 142, macOS 15.

resibow.com/app/dashboard·1920×1080
92 / 10,000
Send
feedback/hubesc to close
3 items
BScanner hangs on blank screen after large PDF…2m
IBulk re-categorize receipts via keyboard would save…3h
PHoly crap the new monthly view is the best thing.1d

How it works

Three things happen. That's the whole product.

  1. 01

    Drop in the widget

    One script tag in your layout. Loads after page paint, never blocks, doesn't ship a webfont. Inherits your accent color.

  2. 02

    Users send what they think

    Bug, idea, praise, question. Their URL, viewport, and identity (if you pass it) are attached. A 6-digit success animation closes the panel.

  3. 03

    You read it like email

    Everything lands in /inbox, sorted newest first. j and k to walk the list, ↵ to open, status pipeline to move items along.

Integrate

Five lines.
No npm install.

Generate a project key in the inbox, paste this into your app layout. The bundle is served from this domain — updates propagate the next time the user reloads.

  • Works with React, Next, Vue, plain HTML — anything that runs JS
  • 4 KB gzipped React component / 64 KB with React bundled
  • System font, no network requests beyond /standalone.js
  • Auth-aware: pass the user, you get a reporter id
app/layout.tsxtsx
<Script
  src="https://feedback-hub.orosa.io/standalone.js"
  data-key={process.env.NEXT_PUBLIC_FEEDBACK_KEY}
  data-endpoint="https://feedback-hub.orosa.io"
  async
/>

Built for keyboards

Triage like an editor, not a manager.

jNext item
kPrevious item
Open
/Focus search
rRefresh
EscClose panel
Send feedback
Walk type chips