Web & Flutter SDK · one dashboard
Tester feedback, with the technical context baked in.
Tracebird is an SDK you drop into your web or Flutter app. Every report automatically ships with the annotated capture, console logs, network requests and a replay of the last 30 seconds. Your testers don't have to do a thing.
500+ teams ship their betas with Tracebird
$ npm i @tracebird/web
Tracebird.init({ projectKey: 'pk_live_…' })
before — what you get today
Karim (tester)
22:47 ✓✓
after — what your team gets
Pay button stuck on infinite loading
highv1.4.2 · staging · iPhone 15 · Safari · en-US
[checkout] payment intent created
[checkout] submitting payment…
POST /api/payments → 500 (612 ms)
TypeError: cannot read 'id' of undefined
at PaymentButton.tsx:87
Reported 14 times by 9 testers
Create issue↑ the tabs work — click around
38 s
median time from shake to sent report
14 → 1
duplicate reports collapsed per bug
< 15 KB
SDK core on load — never blocks render
5 min
from npm install to first report
“We cut bug triage from two hours a day to fifteen minutes. The dedup is not marketing — 23 reports collapsed into 4 issues on our last release.
“Our clients stopped sending videos of themselves describing bugs. They click the button, we get the 500 and the stack trace. It pays for itself on one project.
“First tool where Flutter isn't an afterthought. Shake-to-report captured a screen with two WebViews on it — correctly. I checked twice.
see it in motion
The whole loop, in 30 seconds
From a tester hitting a bug to an actionable GitHub issue — no screenshots by hand, no “can you reproduce?”.
1/6A tester hits a bug — the payment spinner never stops
from report to issue
What happens between the tester's click and your backlog
1 · capture
One gesture for the tester
Floating button, keyboard shortcut, or a shake of the phone on mobile. The tester annotates the capture — arrow, box, blur for sensitive data — writes one sentence, sends. Three gestures, under thirty seconds.
“the spinner never stops here”
2 · context
The context packs itself
A screenshot alone is noise. A screenshot with the stack trace and the request that returned 500 is an actionable ticket. Tracebird collects everything at send time, without asking the tester for anything.
console
Console logs
The last 100 entries, with JS errors and their stack traces.
network
Network requests
Method, URL, status, duration. The 500 is already in the report.
replay
30 s replay
The last 30 seconds of the session, replayable frame by frame.
device
Environment
App version, OS, browser, viewport, language, connection.
navigation
Journey
The current route and the navigation trail that led there.
custom
Your metadata
Feature flags, tenant, app state — via Tracebird.addMetadata().
3 · dedup
Twenty reports, one bug
Your testers describe the same crash in twenty different ways. Tracebird compares every report semantically and groups them: you triage bugs, not duplicates. Ambiguous cases are handed to you — never merged silently.
“can’t pay 😡”
“payment loads forever”
“checkout bug on iPhone”
Pay button stuck on infinite loading
14 reports · 9 testers · since v1.4.2
4 · issue
An issue ready to fix
From a cluster, Tracebird drafts the GitHub or Linear issue: title, reproduction steps, expected and actual behavior, logs attached, link to the replay. One issue per bug — not one per complaint.
fix: payment blocked — POST /api/payments returns 500
## Reproduction
1. Add an item to the cart
2. Go to /checkout, click “Pay”
## Context
TypeError: cannot read 'id' of undefined
▸ replay + logs attached
web + mobile
One dashboard for web and mobile.
Web feedback tools ignore mobile, and vice versa. Tracebird covers both: a JavaScript SDK for your web apps, a first-class Flutter package for your mobile apps — shake-to-report, native screen capture, offline queue. Every report lands in the same inbox.
@tracebird/web
React, Vue, vanilla — one script, zero framework dependencies, <15 KB on load.
tracebird_flutter
iOS and Android from a single pub.dev package. Shake the phone, the report is on its way.
coming next: Chrome extension · React Native
developer experience
Wired in before your coffee gets cold
One init call per platform. No proxy to deploy, no build plugin, no agent on your servers.
Sensible defaults
Masking on, network bodies off, passwords always hidden. You override, we never assume.
Never slows your app
<15 KB core loaded async, recorder and editor lazy-load. A hard budget, benchmarked in CI.
Kill switch included
Disable the widget remotely per project — no redeploy, no stale SDK haunting production.
import Tracebird from '@tracebird/web';
Tracebird.init({
projectKey: 'pk_live_a1b2c3',
environment: 'staging',
release: '1.4.2',
capture: { console: true, network: true,
replay: { bufferSeconds: 30 } },
privacy: { maskAllInputs: true },
});
// that's it — the widget is livewho it's for
Two ways of testing, one need for context
product teams
For your beta testers
Fifty motivated but busy testers: Tracebird gives them a three-gesture channel, and spares you the triage.
- Automatic deduplication of mass reports
- Filter by release, severity and platform
- GitHub / Linear issues generated from clusters
- Lightweight tester identification, no account required
agencies & studios
For your clients
Your clients will never write a good ticket — with Tracebird they no longer need to: they click, annotate, comment.
- Clients report from staging, no account or install
- One project per client, feedback kept separate
- Annotated captures to sign off designs and UAT
- A clean report to forward — no more email ping-pong
the honest table
We did the comparison shopping for you
Great tools, all of them — for half the job. Tracebird exists because none of them covers web and mobile with the technical context included at indie prices.
| aug 2026 pricing | Tracebird | Marker.io | Instabug | Jam |
|---|---|---|---|---|
| Web SDK | extension | |||
| Mobile SDK | Flutter, first-class | native | ||
| Console + network on the cheapest plan | from $0 | $149/mo tier | paid tiers | |
| Session replay on every plan | $149/mo tier | |||
| Semantic dedup — reports clustered into bugs | ||||
| Zero install for testers | per tester | |||
| Per-seat billing | never | $4–6/user | session-based | $14/user |
| Starts at | $0 · paid from $29 | $39/mo | $124/mo | $0 · $14/user |
public pricing pages, checked August 2026 — tell us if something moved and we'll fix it.
pricing
Indie pricing. Actually.
Full technical context on every plan, not reserved for the expensive one. No pageview meter, and your testers are never seats — invite as many as you like, they report without an account. Reports are unlimited; only the AI analysis is metered, and it resets each month.
Free
For your first real project
$0/mo
- 1 project · 3 teammates
- 50 reports/mo, all AI-triaged · 30-day retention
- Console, network, replay & screenshots
- Web + Flutter SDKs
- Unlimited testers — they never need an account
Indie
For products with a real beta
$23/mo · billed yearly
- 5 projects · 3 teammates
- Unlimited reports · 2,000 AI-triaged/mo
- AI titles, repro steps & severity
- AI dedup — 20 reports become 1 bug
- MCP server & GitHub issues
- 90-day retention
card required · cancel anytime
Studio
For agencies & client work
$63/mo · billed yearly
- Unlimited projects · 10 teammates
- Unlimited reports · 10,000 AI-triaged/mo
- Everything in Indie
- Workspace API tokens
- 1-year retention
- Priority support
card required · cancel anytime
Scale & self-hosted
Unlimited projects and reports, SSO/SAML, audit logs, DPA — or run the whole thing on your own infra from a Docker image. For health, finance, and everyone whose lawyers ask questions.
for reference, elsewhere: console + network capture → $149/mo (Marker.io Team) · mobile bug reporting → from $124/mo (Instabug) · Tracebird → included from $0, web and mobile.
faq
The questions devs actually ask
What does “unlimited reports” actually mean?
Reports are never refused — collecting a bug report is the one thing this product must always do. What is metered is the AI analysis: 2,000 reports a month on Indie, 10,000 on Studio. Past that, reports still arrive with their full technical context, screenshots and session replay included; the AI titles, severity and grouping resume next month, or immediately on a larger plan. A beta with twenty testers filing five reports a week uses about a fifth of the Indie allowance.
How heavy is the SDK?
The core is under 15 KB gzipped and loads async — it never blocks your app's rendering. The session recorder and the annotation editor lazy-load in the background, after your app is idle. If Tracebird ever slows down the host app, we consider that a bug in Tracebird.
What happens to sensitive data?
Inputs are masked by default and passwords always are. You can blur or fully exclude any element with a CSS selector, and testers can redact zones manually before sending. Network request bodies are never captured by default, auth headers are scrubbed, and retention is configurable per project.
Does it work with my stack?
The web SDK is framework-agnostic — React, Vue, Svelte or plain HTML, it's one script tag or one npm import. Mobile is a first-class Flutter package covering iOS and Android. React Native and a Chrome extension for pages you can't touch are next on the roadmap.
How is this different from Marker.io, Instabug and friends?
They each do one half: web tools have no mobile SDK, mobile tools ignore the web. Tracebird puts both in one inbox. Console logs and network capture are included from the first tier instead of gated behind enterprise plans, and semantic deduplication turns twenty duplicate reports into one bug.
Do my testers need an account?
No. The widget works anonymously out of the box. If your app knows who the tester is, one call to Tracebird.setUser() attaches their name to reports — that's as heavy as identification gets.
Do you charge per seat?
No — every plan has unlimited team seats, and testers are always free. Per-seat billing punishes you for inviting the people who make feedback useful. We charge for projects and AI processing instead, so adding your whole team costs nothing.
What happens if I go over my monthly reports?
Nothing dramatic. Reports keep flowing for a grace period while we nudge you to upgrade — we never silently drop a tester's report. If you stay over quota, new reports queue until the next cycle or an upgrade, and you can always see exactly where you stand in the dashboard.
Can my AI tools read the feedback?
Yes — Tracebird ships an MCP server exposing your open clusters, so Claude Code or any MCP client can list current bugs, pull reproduction steps and logs while you're fixing them, right from the editor.
Your next beta deserves better than “it doesn't work”.
Drop the SDK in, invite your testers, and watch actionable reports land in one inbox — web and mobile.
free plan forever · no card required