Feedback Platform

One line of code. Every app funnels into one place.

Drop a single <script> tag on any site and get a floating feedback button — feature requests and bug reports flow into a single Linear project, labeled by app, with full tracing context, plus a Slack ping. Framework-agnostic, zero dependencies, rendered inside a Shadow DOM so it can never clash with your styles.

widget/submit (Lambda)Linear issueSlack ping

Embed it

Add this once, anywhere before </body>:

<script src="https://feedback.andreizimin.com/widget.js" data-project="your-app" defer></script>

Replace your-app with a slug for the site — it becomes the Linear label and the tracing tag, so feedback is always attributable to where it came from.

Try it live

This page has the widget embedded with data-project="feedback-demo". Look for the 💬 Feedback button in the bottom-right corner — open it, send a test note, and it'll create a real labeled issue in the Feedback Collector Linear project.

Options

Everything is configured through data-* attributes:

Attribute Default Description
data-project required App slug. Used for the Linear label, issue title prefix, Slack tag, and tracing.
data-endpoint /submit on this script's origin Override the intake URL (e.g. for a self-hosted backend).
data-accent #226B4E Accent colour (hex) for the button and active states.
data-label Feedback Text on the floating button.
data-position bottom-right bottom-right or bottom-left.

What gets captured

Every submission records tracing context into the Linear issue's ## Context block: project, page path, full URL, referrer, user agent, language, viewport, derived environment (localhost/dev/prod), widget version, a short trace ID, and an ISO timestamp. A compact one-liner with the project, environment, and trace ID goes to Slack.