Docs menu

StageWhisper documentation

StageWhisper is an embeddable feedback widget — feedback forms plus thumbs up/down page polls — built for dev and PM teams running QA and UAT. Paste one script tag into your app, and a launcher overlays your pages. Visitors submit feedback, responses land in your dashboard, and each one routes to Asana or your webhooks. Paste one snippet. Keep shipping.

How the pieces fit

The install snippet loads a small loader script from our CDN. The loader fetches the current content-hashed widget bundle, so routine releases reach your visitors without you ever touching the snippet. The bundle renders the widget inside an isolated Shadow DOM and talks to our API for configuration and submissions.

  • Snippet — one async <script> tag you paste once, carrying your public site key.
  • CDN loader — a tiny, short-lived script that always knows the latest release.
  • Hashed bundle — the immutable widget build the loader fetches and caches aggressively.
  • Widget — the launcher, forms, and polls, rendered in a Shadow DOM so your styles stay yours.
  • API — serves the widget its configuration and receives every submission.

The widget is fail-silent by design: a bad key, a blocked origin, or an unreachable API logs a single console.warn and renders nothing. It never throws into your page.

Your public site key

Every snippet carries a public site key (pub_...). It is safe to ship in your HTML because it is identification, not authentication: the key only tells us which site's configuration to serve. Access control happens elsewhere — each site keeps a per-site origin allowlist, and every write is re-checked server-side against your plan's entitlements. A copied key on a domain you have not allowed gets nothing.

Explore the docs

Install by framework

Framework-specific install guides, from plain HTML to Next.js: