For developers

Sentry for UX friction

Behavioral instrumentation that catches rage clicks, dead clicks, form friction, and post-deploy regressions, turns them into ranked issues, and verifies your fixes. TypeScript-first, framework wrappers, MCP built in.

html
<script
  src="https://flusterduck.com/d.js"
  data-key="fd_pub_YOUR_KEY"
  data-dnt="false"
  async
></script>

data-dnt="false" matters because the browser's DNT signal can drop 30-50% of visitors. We never read form values or user-typed text. Short element labels are PII-redacted before they leave the browser.

What we capture

  • Clicks, taps, and the element selectors they land on
  • Short element labels, capped and PII-redacted in the browser
  • Scroll depth, hesitation, and timing patterns
  • Navigation paths and back-and-forth loops
  • Viewport size and browser class
  • Deploy markers, so regressions get blamed correctly

What we never touch

  • Form values, passwords, or raw keystrokes
  • User-typed text or arbitrary page copy
  • Session replay or DOM recording
  • Raw IP addresses (hashed at the edge)
  • Third-party ad or cross-site cookies

132 detectors run in the browser. These are the ones you'll meet first, each one a named, typed signal, not a blob of events.

rage_click

Same element hammered in rapid succession. Pure frustration.

dead_click

A click on something that looks interactive and does nothing.

form_friction

Refills, corrections, and stalls inside a form field.

navigation_loop

Users bouncing between the same pages, hunting for something.

misclick

Taps that land just off-target, usually a tap-target problem.

deploy_regression

Confusion that climbed right after a deploy. We name the deploy.

@flusterduck/mcp-server exposes your friction data to Claude Desktop, Claude Code, or any MCP client. Ask "what's the worst issue on checkout this week?" and get the real answer. Bring your own Claude.

json
{
  "mcpServers": {
    "flusterduck": {
      "command": "npx",
      "args": ["-y", "@flusterduck/mcp-server"],
      "env": {
        "FLUSTERDUCK_MCP_KEY": "fd_mcp_...",
        "FLUSTERDUCK_SITE_ID": "your-site-id"
      }
    }
  }
}
Flusterduck for developers - Sentry for UX friction