The bug reporting widget for React apps
One component-friendly widget: your users and testers report bugs with an annotated screenshot, console errors, and failed network requests attached — created directly in Jira, AI-triaged. Plays nicely with React 18+, strict mode, and client-side routing.
Why React teams use it
"It broke" — but the console error is gone
React error boundaries swallow render crashes and users close the tab. The widget monitors console and network from page load, so the report carries the TypeError your reporter never saw.
Re-renders and routing break naive widgets
Scripts that assume a static page fall apart under client-side routing. IssueCapture has an explicit init/destroy lifecycle designed for component unmount/remount and per-route config.
CSS collisions with your design system
The widget renders inside Shadow DOM — your Tailwind/CSS-in-JS styles cannot touch it, and its styles cannot leak into your components.
Install on React in minutes
No SDK, no backend changes — the widget is a single ES module.
- 1
Get an API key
Sign up free and grab the widget key for your project.
- 2
Load once, init in an effect
Add the module script in index.html, or init inside a useEffect with a destroy() cleanup so strict-mode double-mounting stays clean.
- 3
Reports land in Jira
Connect Jira via OAuth once; every report arrives as a ready-to-work issue.
useEffect(() => {
IssueCapture.init({ apiKey: process.env.REACT_APP_ISSUECAPTURE_KEY });
return () => IssueCapture.destroy(); // strict-mode safe
}, []);React lifecycle pattern — full guide in the docs. Read the full React guide →
Every report arrives in Jira with
Annotated screenshot
Reporters circle the problem instead of describing it
Console errors
JavaScript errors and warnings from page load onward
Failed requests
4xx/5xx network calls, with privacy filters
Browser context
URL, browser, OS, viewport — automatically
Then AI triage sets priority and category and links duplicates — before the issue lands in your project (team-managed and JSM included).
React bug reporting: FAQ
Does the widget work with React strict mode?›
Yes. init() is idempotent and destroy() fully cleans up (button, listeners, state), so the double-mount behavior of React 18 strict mode in development is handled by the init/destroy effect pattern shown above.
Does it capture errors from inside React error boundaries?›
The widget records console output and failed network requests from page load. Errors your boundaries log to the console are captured; the report includes them alongside the screenshot and browser context.
Will it clash with Tailwind, styled-components, or my design system?›
No — the widget UI renders inside Shadow DOM, which isolates styles in both directions. Your CSS cannot restyle the widget and the widget cannot leak styles into your app.
Can different routes use different widget configs?›
Yes. Re-init with a different API key (auto-detected), call updateConfig(), or use the destroy/init cycle in route-level effects — the SPA lifecycle is a documented, supported path.
Ship the widget on your React app today
Free plan with 10 issues/month, no credit card. Jira connection takes one OAuth click.
- Works with Jira Cloud + JSM
- Team-managed projects supported
- ~40KB core, lazy-loaded extras