Engineering

Bug Reporting

Capture highly structured, actionable error reports from users.

Browse Bug Reporting Templates

Why use Forge for bug reporting?

When users experience a bug, they rarely provide enough information for engineers to reproduce it. Generic 'something broke' messages waste hours of debugging time. Forge bug report forms enforce a structured format: steps to reproduce, expected vs. actual behavior, browser version, OS, and a screenshot attachment — all required before the report can be submitted.

Every completed report fires a Forge webhook that creates a Linear or Jira ticket automatically, pre-populated with all the structured data. Hidden fields automatically capture user-agent string, viewport size, and current URL without asking the user — giving engineers additional context with zero friction.

Structured Validation

Force users to fill crucial fields (reproduction steps, severity level) before submission. Zero incomplete reports.

Jira / Linear Sync

Every bug report automatically creates an engineering ticket with all structured fields mapped to ticket properties.

Silent Environment Capture

Hidden API fields silently capture user-agent, viewport, and current URL. Engineers get full context automatically.

Performance Data

Structured bug reports reduce average time-to-fix by 44% vs. freeform tickets

Screenshot attachment rate increases 3× with pre-configured file upload vs. asking users to attach separately

How to set it up

1

Build a structured bug form

Required fields: title, steps to reproduce, expected vs. actual. Optional: severity, screenshot upload.

2

Add hidden environment fields

Use JavaScript to populate hidden fields with window.navigator.userAgent, screen size, and document.URL on load.

3

Configure Linear webhook

POST to Linear's issue creation API on every submission. Map title → name, steps → description, severity → priority.

4

Add file upload for screenshots

Enable the file upload field. Files are stored securely in Forge and linked in the webhook payload.

Start from a Template

Or use the Headless API to build from scratch.