Documentation
Install the widget
Paste the script tag and verify the launcher appears.
What visitors see
After load, Gatherly mounts a floating launcher (placement is configurable in the widget editor under Launcher, or per page via data-widget-position). Opening it shows a panel in an iframe hosted by Gatherly, where visitors can use the features you enabled (Feedback, Bug, Idea, Review, Chat).
Using Cursor or Claude Code? Generate a setup prompt on Set up with AI.
src— your Gatherly app URL plus/embed.js(rewrites to the embed API).data-key— the project public key from Project → Embed. Keys start withpk_.data-language(optional, paid plans) — ISO language code for the widget UI, e.g.en,fr, ores. When omitted, the project default language is used, then English. Free plans always render English. See Multi-language for setup details.data-widget-theme(optional) —light,dark, orsystem. Overrides the project default theme from the widget editor. When omitted or invalid, the project default is used (defaults to light).systemfollows the visitor'sprefers-color-scheme.data-widget-position(optional) —bottom_right,bottom_left,bottom_center,left_center, orright_center. Overrides the project launcher placement from the widget editor for that page. When omitted or invalid, the project default is used (defaults tobottom_right).
Install for your stack
Pick your platform. Snippets use your project public key when you are signed in as an owner or admin; otherwise placeholders. Each example is labeled Server (rendered or run on your backend) or Client (browser).
- Add the script once per page — typically just before </body>.
- The async attribute keeps the widget off the critical rendering path.
Script tag
<script
src="https://YOUR_DOMAIN/embed.js"
data-key="pk_live_…"
async
></script>Verify
- Open a page with the script and confirm the launcher appears.
- Send a short test message as each type you enabled.
- Check the matching inbox in your dashboard.
Next: identify logged-in users
For verified identity on feedback and Chats, mint a signed JWT and pass it as data-auth-token. See User authentication.