Bug Reports
A bug report is the central object in BugPort: a single record that bundles the evidence, technical context, page context, and collaboration around one issue so that anyone on your team can reproduce and fix it without a back-and-forth. Reports arrive from several sources — the browser extension, the npm widget, the API, and MCP — and how a report was captured determines what it contains. This page explains every element a report can hold and how its shape varies by source.
Anatomy of a report
Not every report has every field. The elements below are the full set; which ones are present depends on the capture source and on what the reporter triggered.
Lightweight metadata, small logs, comments, and activity live in Supabase Postgres. Heavy media — screenshots, replay videos, attachments, thumbnails, large logs, and HAR files — is stored in Cloudflare R2 and served through presigned URLs. Binaries never pass through Postgres.
Report anatomy, visualized
How the source shapes the report
A report's source is the single biggest factor in what it contains. The dashboard renders each report adaptively — it shows the panels that have data and cleanly omits the ones that do not, so a report with no screenshot does not render a broken image frame.
What each source typically includes
| Element | Extension (Plugin) | Widget | API / MCP |
|---|---|---|---|
| Screenshot | Yes | Optional | Rare (explicit upload) |
| Annotations | Yes | Yes | No |
| Feedback text | Yes | Yes | Yes |
| Console logs | Yes | No | No |
| Network requests | Yes | No | No |
| Response bodies | Yes | No | No |
| Page path & context | Yes | Yes | Often |
| Session replay | Optional | No | No |
| Status & severity | Yes | Yes | Yes |
| Comments & activity | Yes | Yes | Yes |
| Share links | Yes | Yes | Yes |
Triage: status, severity, comments, and activity
Once a report exists, it becomes a working item. Status moves it through your workflow (open through closed). Severity sets priority. Comments keep the discussion attached to the evidence instead of scattered across chat. The activity timeline records what changed and when — status updates, new comments, exports to issue trackers, and share-link creation — so the history of a report is always auditable.
These collaboration features are available on every report regardless of source, and they are all included on every plan — BugPort never charges per seat, so unlimited team members can triage together. (Plans differ on workspace storage, not on people.) See the dashboard for the triage experience.
Sharing a report
Sometimes the person who needs to see a bug is outside your workspace — a contractor, a vendor, or a stakeholder without a BugPort account. Share links solve this without granting workspace access.
- Create a share link
From a bug's detail view, create a share link. This produces a public, read-only URL backed by the share endpoint (
GET /v1/public/share/bug/{share_id}). - Send it to anyone
Anyone with the link can open a read-only view of the report. They cannot change status, comment, or see anything else in your workspace.
- Revoke when done
Share links are revocable. Revoke a link from the dashboard at any time to immediately cut off external access.
The public share page respects the same display rules as the dashboard — it shows the panels that have data and omits the ones that do not, so a screenshot-less widget report shares just as cleanly as it displays internally. Share links are strictly read-only: they never expose comments-as-editable, never allow status changes, and never leak other reports or cross-workspace data.
- Use share links for read-only stakeholders who should not have workspace access
- Revoke a link once the external reviewer is finished
- Remember screenshots may contain whatever was on screen — review before sharing externally
- Treat a share link as private — anyone with the URL can view it until revoked
- Use share links to grant editing or triage; they are read-only by design
A share link is read-only but not access-controlled beyond the URL itself. Anyone who has the link can view the report until you revoke it. Share deliberately, and revoke when the work is done.