<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Benji Darby</title>
    <description>The latest articles on DEV Community by Benji Darby (@issuecapture).</description>
    <link>https://dev.to/issuecapture</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3869976%2F8873e1de-661a-422f-bb1f-67f4c3a3d517.jpeg</url>
      <title>DEV Community: Benji Darby</title>
      <link>https://dev.to/issuecapture</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/issuecapture"/>
    <language>en</language>
    <item>
      <title>Jira Issue Collector Alternatives in 2026: What to Use Now That It's Dead</title>
      <dc:creator>Benji Darby</dc:creator>
      <pubDate>Thu, 09 Apr 2026 14:57:59 +0000</pubDate>
      <link>https://dev.to/issuecapture/jira-issue-collector-alternatives-in-2026-what-to-use-now-that-its-dead-2k76</link>
      <guid>https://dev.to/issuecapture/jira-issue-collector-alternatives-in-2026-what-to-use-now-that-its-dead-2k76</guid>
      <description>&lt;p&gt;Atlassian's Issue Collector hasn't been updated in years. It doesn't work with team-managed projects, has no screenshot annotation, no error capture, and the documentation still references Firefox 28. If you've been relying on it to collect bug reports from your website, you've probably noticed it's falling apart.&lt;/p&gt;

&lt;p&gt;Here's what actually works in 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was the Jira Issue Collector?
&lt;/h2&gt;

&lt;p&gt;The Issue Collector was a widget Atlassian provided to embed a bug reporting form on your website. It opened an iframe with a Jira issue creation form. Users filled it out, hit submit, and a ticket appeared in your Jira project.&lt;/p&gt;

&lt;p&gt;It was fine for its time, but it had serious limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No screenshot tools&lt;/strong&gt; — users couldn't capture or annotate what they were seeing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No error capture&lt;/strong&gt; — no console logs, no network failures, no browser info&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iframe-based&lt;/strong&gt; — cross-origin restrictions meant the widget couldn't access page context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No team-managed project support&lt;/strong&gt; — only worked with company-managed projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No AI or automation&lt;/strong&gt; — every ticket needed manual triage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broken styling&lt;/strong&gt; — the iframe often conflicted with host page CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No SPA support&lt;/strong&gt; — didn't handle route changes in React, Angular, or Vue apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Atlassian hasn't publicly deprecated it, but it's effectively abandoned. No updates, no fixes, no roadmap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to look for in a replacement
&lt;/h2&gt;

&lt;p&gt;A modern bug reporting widget should:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Capture context automatically&lt;/strong&gt; — console errors, network failures, browser info, page URL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support screenshots&lt;/strong&gt; — ideally with annotation (draw, crop, highlight)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isolate from the host page&lt;/strong&gt; — no CSS conflicts, no broken layouts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work with team-managed projects&lt;/strong&gt; — not just company-managed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handle SPAs&lt;/strong&gt; — proper lifecycle management for React, Angular, Vue, Next.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create detailed Jira tickets&lt;/strong&gt; — not just a summary field and a description&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The alternatives
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. IssueCapture
&lt;/h3&gt;

&lt;p&gt;A drop-in JavaScript widget purpose-built as an Issue Collector replacement. One script tag, creates Jira tickets via OAuth 2.0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screenshot capture with annotation (crop, draw, highlight)&lt;/li&gt;
&lt;li&gt;Console errors captured automatically from page load&lt;/li&gt;
&lt;li&gt;Network request monitoring (4xx/5xx failures)&lt;/li&gt;
&lt;li&gt;Works with both Jira Software and JSM, including team-managed projects&lt;/li&gt;
&lt;li&gt;AI triage, categorization, duplicate detection, sentiment analysis (optional)&lt;/li&gt;
&lt;li&gt;Shadow DOM isolation — no CSS conflicts&lt;/li&gt;
&lt;li&gt;16 languages&lt;/li&gt;
&lt;li&gt;40KB gzipped core, screenshot and annotation lazy-loaded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Free tier (10 issues/mo), Starter $29/mo, Team $59/mo (AI features), Business $99/mo&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Teams that want a direct Issue Collector replacement with modern features. Closest thing to a drop-in swap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://issuecapture.com" rel="noopener noreferrer"&gt;issuecapture.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I built IssueCapture.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Marker.io
&lt;/h3&gt;

&lt;p&gt;A visual bug reporting tool that integrates with Jira, Trello, Asana, and other project management tools. Focused on client feedback and QA workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screenshot and screen recording&lt;/li&gt;
&lt;li&gt;Annotation tools&lt;/li&gt;
&lt;li&gt;Technical metadata capture&lt;/li&gt;
&lt;li&gt;Integrates with multiple project management tools (not just Jira)&lt;/li&gt;
&lt;li&gt;Guest reporting (no login required)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Starts at $39/mo (Starter, 5 seats). Team plan $99/mo (15 seats). Company plan $199/mo (unlimited seats).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Agencies and teams that use multiple project management tools, not just Jira. Strong if you need client-facing feedback collection across different platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; Per-seat pricing gets expensive for larger teams. Minimum $39/mo even for small teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Usersnap
&lt;/h3&gt;

&lt;p&gt;A feedback and bug tracking platform with visual annotation. Used by larger enterprises for customer feedback, QA, and beta testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screenshot and screen recording&lt;/li&gt;
&lt;li&gt;In-app surveys and feedback forms&lt;/li&gt;
&lt;li&gt;Annotation tools&lt;/li&gt;
&lt;li&gt;Integrates with Jira, Azure DevOps, and others&lt;/li&gt;
&lt;li&gt;Session replay&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Starts at $39/mo (Startup plan). Business plan $99/mo. Enterprise pricing available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Teams that want bug reporting combined with customer feedback surveys. More of a feedback platform than a pure bug reporter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; Heavier than a simple bug widget. Can be overkill if you just want bug reports into Jira.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. BugHerd
&lt;/h3&gt;

&lt;p&gt;A visual feedback tool that pins comments directly on web pages. Originally designed for web agencies collecting client feedback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Point-and-click bug reporting on web pages&lt;/li&gt;
&lt;li&gt;Visual pins on page elements&lt;/li&gt;
&lt;li&gt;Screenshot capture&lt;/li&gt;
&lt;li&gt;Jira integration&lt;/li&gt;
&lt;li&gt;Guest access for clients&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Starts at $41/mo (Standard, 5 members). Premium $66/mo (25 members). Per-seat pricing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Web agencies collecting visual feedback from clients during development. The pin-on-page approach works well for design and layout feedback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; Per-seat pricing. Less suited for end-user bug reporting on production sites. Jira integration is secondary to their own task board.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Instabug
&lt;/h3&gt;

&lt;p&gt;A mobile and web SDK for bug reporting, crash reporting, and user feedback. Originally focused on mobile apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug reporting with screenshots&lt;/li&gt;
&lt;li&gt;Crash reporting and performance monitoring&lt;/li&gt;
&lt;li&gt;In-app surveys&lt;/li&gt;
&lt;li&gt;Session replay&lt;/li&gt;
&lt;li&gt;Integrates with Jira and other tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Starts at $249/mo (Growth plan). Enterprise pricing available. 14-day free trial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Mobile app teams that also have a web presence. Strong crash reporting and performance monitoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; Expensive. Mobile-first — the web SDK is secondary. Overkill if you just need a Jira bug reporting widget.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Jam.dev
&lt;/h3&gt;

&lt;p&gt;A browser extension for bug reporting. Users capture bugs via the extension, and tickets are created in Jira or other tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser extension captures page state&lt;/li&gt;
&lt;li&gt;Auto-captures console logs, network requests&lt;/li&gt;
&lt;li&gt;Screen recording&lt;/li&gt;
&lt;li&gt;Integrates with Jira, Linear, and others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Free plan available. Pro starts at $5/user/month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Internal teams where everyone can install a browser extension. Good for developer-to-developer bug reporting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; Requires extension installation — not suitable for external users or customers reporting bugs. Per-user pricing.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Build your own with the Jira REST API
&lt;/h3&gt;

&lt;p&gt;If you don't want a third-party widget, you can create issues directly via the Jira REST API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST /rest/api/3/issue
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full control over the UI and UX&lt;/li&gt;
&lt;li&gt;No third-party dependencies&lt;/li&gt;
&lt;li&gt;Direct OAuth 2.0 or API token authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What you have to build yourself:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The entire bug reporting UI&lt;/li&gt;
&lt;li&gt;Screenshot capture and annotation&lt;/li&gt;
&lt;li&gt;Console error and network monitoring&lt;/li&gt;
&lt;li&gt;File upload handling&lt;/li&gt;
&lt;li&gt;Error handling and retry logic&lt;/li&gt;
&lt;li&gt;Multi-project support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Teams with specific UI requirements that no off-the-shelf widget can meet, and the engineering bandwidth to build and maintain it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;IssueCapture&lt;/th&gt;
&lt;th&gt;Marker.io&lt;/th&gt;
&lt;th&gt;Usersnap&lt;/th&gt;
&lt;th&gt;BugHerd&lt;/th&gt;
&lt;th&gt;Instabug&lt;/th&gt;
&lt;th&gt;Jam.dev&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Screenshot annotation&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Console error capture&lt;/td&gt;
&lt;td&gt;Auto from page load&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network monitoring&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI triage&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team-managed projects&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shadow DOM isolation&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Per-seat pricing&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starting price&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;$39/mo&lt;/td&gt;
&lt;td&gt;$39/mo&lt;/td&gt;
&lt;td&gt;$41/mo&lt;/td&gt;
&lt;td&gt;$249/mo&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSM support&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Which one should you pick?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Replacing Issue Collector with minimum fuss:&lt;/strong&gt; IssueCapture — closest to a drop-in replacement, works with team-managed projects, no per-seat pricing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agency collecting client feedback:&lt;/strong&gt; Marker.io or BugHerd — built for that workflow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise feedback platform:&lt;/strong&gt; Usersnap — surveys, feedback, and bug reporting combined&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile + web:&lt;/strong&gt; Instabug — if you need crash reporting and performance monitoring too&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internal dev team only:&lt;/strong&gt; Jam.dev — browser extension is fine when you control the users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum control:&lt;/strong&gt; Jira REST API — if you have the bandwidth to build and maintain it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Issue Collector had a good run. These tools are all better.&lt;/p&gt;

</description>
      <category>jira</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I replaced Atlassian's Issue Collector with a modern alternative — here's what I built</title>
      <dc:creator>Benji Darby</dc:creator>
      <pubDate>Thu, 09 Apr 2026 13:42:30 +0000</pubDate>
      <link>https://dev.to/issuecapture/i-replaced-atlassians-issue-collector-with-a-modern-alternative-heres-what-i-built-3cdo</link>
      <guid>https://dev.to/issuecapture/i-replaced-atlassians-issue-collector-with-a-modern-alternative-heres-what-i-built-3cdo</guid>
      <description>&lt;p&gt;Atlassian's Issue Collector hasn't been meaningfully updated since 2014. No screenshot tools, no AI, it doesn't work with team-managed projects, and the docs still reference Firefox 28. If you've ever tried to set it up on a modern stack, you know the pain.&lt;/p&gt;

&lt;p&gt;I spent months building a replacement. IssueCapture is a drop-in JavaScript widget that lets website visitors report bugs directly into Jira — with screenshots, console errors, and network data included automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Bug reports from end users are usually terrible. "It doesn't work" with no context, no steps to reproduce, no browser info. Developers waste hours going back and forth trying to understand what actually happened.&lt;/p&gt;

&lt;p&gt;Atlassian's answer to this was the Issue Collector — a widget you embed on your site. But it's been abandoned. No screenshot annotation, no error capture, no AI, no modern framework support. And if your Jira project is team-managed? You can't use it at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;One script tag, five minutes to set up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"module"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;IssueCapture&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://issuecapture.com/widget.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;IssueCapture&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The widget gives users a floating button. They click it, describe the bug, and the ticket lands in Jira with full context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot + annotation&lt;/strong&gt; — capture, crop, draw, highlight. Lazy-loaded so it's only +13KB if they actually use it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Console errors&lt;/strong&gt; — captured automatically from page load, not just after the widget opens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network failures&lt;/strong&gt; — 4xx/5xx responses caught automatically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser info&lt;/strong&gt; — URL, user agent, viewport size.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technical decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Shadow DOM isolation.&lt;/strong&gt; The widget runs inside a Shadow DOM so it can't conflict with the host page's CSS. All styles are plain CSS strings injected into the shadow root — no external stylesheets, no Tailwind, nothing that could leak.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preact over React.&lt;/strong&gt; The core widget is ~40KB gzipped. Screenshot capture adds 13KB, annotation adds 107KB — both lazy-loaded only when the user needs them. Keeping it small matters when you're injecting into someone else's site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Console capture from page load.&lt;/strong&gt; Most bug reporters only capture errors that happen after the widget opens. That misses the errors that actually caused the problem. IssueCapture hooks into &lt;code&gt;console.error&lt;/code&gt; and monitors network requests from the moment the page loads, then includes relevant ones in the report if the dashboard admin has enabled it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI is optional.&lt;/strong&gt; Triage, categorization, duplicate detection, and sentiment analysis run through a queue processor on Gemini 2.5 Flash with an OpenAI fallback. Duplicate matching uses text-embedding-004 + pgvector. But the widget works perfectly fine without any of it — AI features only kick in on paid tiers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Widget:&lt;/strong&gt; Preact + TypeScript + Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard:&lt;/strong&gt; Next.js 16 (App Router) + Tailwind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Vercel Serverless Functions + Supabase (PostgreSQL + RLS)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Google Gemini (primary) + OpenAI (fallback)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jira integration:&lt;/strong&gt; OAuth 2.0 (no API tokens or passwords)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supabase handles multi-tenancy through Row Level Security — every query is scoped to the account. pgvector powers the duplicate detection embeddings. Edge Functions serve the widget config so it loads fast.&lt;/p&gt;

&lt;p&gt;16 languages supported with lazy-loaded locale files so you only download the one you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bug report quality is the real product.&lt;/strong&gt; The AI features are nice, but the biggest impact is just capturing console errors and network failures automatically. Developers told me that alone cut their "can you send me more details?" messages in half.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Widget size is a feature.&lt;/strong&gt; Every KB matters when you're asking someone to add your script to their production site. Lazy-loading the heavy parts (screenshot, annotation) was the right call — most bug reports don't include screenshots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shadow DOM has rough edges.&lt;/strong&gt; Focus trapping, font loading, and z-index stacking all behave differently inside a shadow root. If you're building an embeddable widget, budget time for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;There's a demo on the homepage: &lt;a href="https://issuecapture.com" rel="noopener noreferrer"&gt;issuecapture.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Free tier is 10 issues/month, no credit card required. Paid plans start at $29/mo with no per-seat pricing.&lt;/p&gt;

&lt;p&gt;If you're on a team that uses Jira and you're tired of garbage bug reports, give it a shot. Happy to answer questions in the comments.&lt;/p&gt;

</description>
      <category>jira</category>
      <category>jsm</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
