Widget settings
Everything below is set in the dashboard under Settings and applied at runtime; no redeploy of your site is needed.
| Setting | Values | What it does |
|---|---|---|
mode | full · two · single · rate_only | Which intents the segmented control shows. single is one box sent as a general note; rate_only is faces plus an optional note. |
intents | subset of rating, suggestion, bug | Used with mode=two. |
position | bottom-right · bottom-left · edge-right · edge-left · none | edge-* is a rotated tab on the side of the viewport; none hides the pill so you open the card from your own link with window.backwire.open(). |
bubble_style | icon · icon_label · label | icon shows the label for 3 seconds on a visitor's first page in a session, then collapses. |
accent | hex color | Used only for Send, focus rings and the selected face. Light colors are darkened until the Send label reaches 4.5:1 contrast. |
radius | round · soft · square | 14 px, 8 px or 2 px corners. |
theme | auto · light · dark | auto follows the visitor's system setting. |
labels | per-locale strings | bubble, rate, idea, problem, the three questions, single_prompt, sent, nudge. The widget picks navigator.language, then the base language, then English. |
show_on_paths / hide_on_paths | path globs | * matches within a segment, ** across segments. hide wins. |
first_show_delay_ms | number | Delay before the pill appears (after the page is idle). |
hide_on_scroll | boolean | Fade the pill out while scrolling; it returns 600 ms after scrolling stops. |
show_footer | boolean | The “Powered by Backwire” link. Always on for the free plan. |
font | system · inherit | inherit sets font-family: inherit on the card so it takes the host page's face. |
rating_style | faces · numbers · stars | What the five rating choices look like. Numbers and stars draw in the accent. |
bubble_icon | chat · star · megaphone · question | The glyph in the pill. |
bubble_size | regular · compact | 44 px or 36 px pill. |
offset | { x, y } in px, 0–120 | Distance from the corner, for getting clear of a cookie banner or another widget. |
devices | subset of desktop, tablet, mobile | Devices the pill mounts on. Page measurements still run on every device. |
open_on_hash | boolean | A URL ending in #feedback opens the card on arrival and on hashchange. |
contact_nudge | always · problems · never | Whether the sent screen asks for an email address. |
capture | { console, network, clicks } | Each false stops that trail and empties it, so nothing of that kind can travel with a report. |
analytics | boolean | false stops the automatic page beacons entirely; feedback still works. |
colors | { light, dark } of bg, fg, muted, line, field, bubble_bg, bubble_fg | Hex overrides per theme: the card's surfaces, and the bubble's own background and icon. Blank means the default, and a blank bubble follows the card. |
JavaScript API
window.backwire.init({ pk })— mount programmatically (SPA frameworks).window.backwire.open()/window.backwire.close()— open or close the card, e.g. from your own “Send feedback” link.window.backwire.identify({ id, email })— attach a signed-in user; the report gets their contact with follow-up allowed and the nudge is skipped.window.backwire.set({ version, tenant, variant })— attach facts about your app to every later report: up to ten short strings, shown on the report and in the agent prompt.data-version="1.4.2"on the script tag setsversionfor you, and Page insights then groups reports by release.window.__backwire_skip_net = truebefore the script — skip the fetch/XHR hook if another tool already wraps them.