Your tester speaks the bug.
You get a GitHub issue.
One tap on your app captures the replay, the console and their voice, and files a GitHub issue your team can act on.
Free forever: 30 reports a month per project · No credit card · One script tag
- Tap the button on your app
- Speak “the total is wrong”
- Issue filed replay, logs, transcript
- Assigned labelled, deduplicated, in your tracker
A wrong answer is not a crash.
Error tools wait for an exception. Replay tools wait for a struggle signal. Neither can see a button that worked and did the wrong thing. A person can, so we let a person say it.
What you get
-
Your tester needs no words for it
They tap and they talk. The console and the network errors come attached, and the tester can add a screenshot with one tap. There is nothing to write up.
-
The last 60 seconds, and a reproduction if they want one
The last ~60 seconds (session replay, console errors, network calls) are captured automatically at the tap. The tester can also record a reproduction: the steps shown on screen while they talk, up to 3 minutes.
-
The issue lands in your repo
Transcribed, fingerprinted, deduplicated. The same bug twice is one issue.
-
Everything is already attached
Replay, console and network, the tester's own words, and a screenshot when the tester adds one. Nobody has to ask "what did you do?".
This is what lands in your tracker.
Example - the issue LadyBugLoop files, in the format it really writes.
Observed Behavior (Actual)
“I opened the page and the little ladybug button just isn’t there. I reloaded and it came back. Nothing looks broken otherwise.”
Expected Behavior (Expected)
Not provided by the tester.
Reproduction Steps (1, 2, 3)
Not provided by the tester.
Environment & Telemetry Logs
Android 14 · Chrome 128 (Blink) · mobile · 360×660 CSS px · DPR 3
manual report, no console error
What the tester did (last 3 actions)
00:02 NAV /practice
00:07 CLICK button "Start"
00:11 REPORT tapped the report button
Your testers’ sessions stay yours.
A tester presses a button, so we capture a chosen moment, not everything, always.
- Inputs are masked by default What people type is redacted in the replay before it leaves the browser. You opt fields back in.
- One moment, not a firehose The last ~60 seconds of one session, plus an optional reproduction recording of up to 3 minutes, captured when a QA person decided to report. No report content is sent until they do. The rolling buffer lives in the page's memory; if a send fails, the report, replay included, is kept on the device for up to 7 days (at most 20 reports, 10 attempts) and retried; a report too large to send is not kept, nor is anything kept where the browser blocks on-device storage; retry re-sends only a report the tester already chose to send.
- One project cannot read another Row-level security scopes every read to the project that owns it, files included.
- We never touch your code LadyBugLoop files an issue. It has no branch, no commit and no write access to your source, so there is nothing here that can change your repo.
- Your ingest key is stored as a hash We keep a SHA-256 of it, never the key itself.
- The SDK cannot break your app Every entry point and patched function is wrapped; on any internal failure it silently does nothing.
Data lives in Supabase (eu-central-1, Frankfurt). Every third party that touches a report is named in the subprocessor list, with what each one receives. We hold no SOC 2 or ISO 27001 audit today — this is how it is built, not a certificate.
One call, then hand it to your tester.
<script src="https://ladybugloop.com/sdk/v16/ladybugloop.iife.js"></script>
<script>BugLoop.init({ key: YOUR_KEY, projectId: YOUR_PROJECT, endpoint: YOUR_INGEST_URL });</script>
One script on your page and that one call. The button appears; nothing else in your app changes, and if the SDK ever fails it does nothing at all.
Live in seconds: 3.8 s measured from pasting those two lines to a working report button.
Under 80 KB gzipped, and it loads after your page. The size is checked on every build, and the build fails if it outgrows that budget.
Start free. Pay when it pays off.
Free forever: 30 reports a month per project.
Team $79 a month per project: 500 reports a month per project included.
Larger organisation? Talk to us.
No credit card to start · Cancel anytime