Click anywhere, drop a pin, write feedback. No account, no extension, no “third section from the top” email. Two steps in React, one tag without a bundler, or one prompt to your coding agent.
Live demo: this widget is real. What you leave stays in your browser, visible only to you.
That’s the whole install
Or let your coding agent do it. The prompt has the install command, the production check, the origin allowlist, and how to verify it worked.
How it works
From “this button looks off” to a shipped fix
Feedback starts as a pin on the actual page and ends as a resolved thread, an agent prompt, or a Linear ticket, with the element, the viewport, and the browser carried along the whole way.
What’s in the box
Dense where it counts
Anchoring intelligence
Pins attach to the element under the click, capturing a selector chain, offsets, and a text fingerprint. They survive redeploys and honestly flag drift instead of silently lying.
Screenshots built in
Every comment captures the pinned area automatically. Stored privately, served through short-lived signed URLs to project members only.
One Inbox for everything
Every comment across the project in a single stream. Filter by page, status, commenter, viewport, or browser, with per-editor unread state.
Copy for your agent
Threads export as structured, agent-ready prompts. Each one has the page, the element, the viewport, and the ask, written for Claude Code, Cursor, or any coding agent.
Linear in one click
Connect a team and any thread becomes a Linear issue with the agent-copy description and the screenshot attached.
Email claim, no passwords
Commenters just type a name and email. The confirmation email doubles as a claim link that keeps their identity across devices and projects.
Ship the widget before your next review call
We built this for ourselves. We hope you find it useful too.