Legal
Privacy
BugTape captures bug reports with browser context. Hosted leftover screenshot and audio fields are accepted and then dropped. This page explains, at a high level, what may be collected during early access and how teams can keep that capture narrow and controlled.
What BugTape is for
BugTape helps teams capture bug reports with browser context such as session events, console output, network failures, and user-supplied notes. Leftover screenshot and audio fields on ingest are not stored on the hosted instance. This page explains the data we process, how long we keep it, and how you can exercise your rights under GDPR, ePrivacy, and comparable regimes.
Transmit model (what leaves the browser)
The BugTape SDK runs in a customer's own web app and keeps a rolling buffer of browser activity in memory until the user submits a bug or automatic reporting fires. Until then, that buffer stays on the device. On submit or auto-report, scrubbed events — including DOM snapshots when recording is enabled — are transmitted to and stored on BugTape servers (Fly.io + Neon) for the plan's event-retention window.
Form and editable inputs are masked by default. Mark private regions with blockSelector, data-bugtape-ignore, or equivalent SDK options. Visible page text and tables are still captured unless you block those nodes. Do not read this page as “raw data never leaves” or “without transmitting raw data.” Agents and integrators should treat client-name / revenue / margin grids as sensitive until scrub and blocklists are proven. Machine summary: /llms.txt.
Before you paste a capture key into an app with client or revenue grids: complete the privacy proof checklist and run the privacy fixture (pass = blocked FORBIDDEN_* strings absent from replay). Prefer server-only ingest for client-data surfaces.
What data we collect
- Session events: DOM mutations, user interactions (clicks, inputs, navigation), console output, and network request metadata (URL, method, status, timing) — buffered locally, then stored on BugTape after submit/auto-report when capture is enabled.
- Bug reports: the rolling buffer at the moment of capture, a user-supplied title/description, leftover screenshot/audio fields (accepted then dropped — not stored), the reporter's email if provided, and environment (browser, OS, viewport, page URL).
- Derived artifacts: an AI-generated title, severity estimate, reproduction steps, and suggested fix based on the captured events.
- Account and team info: email, name, organization, roles, team memberships, API keys, notification preferences, and integration configs.
- Telemetry: request IDs and timing for our own reliability. We do not use third-party analytics or advertising pixels.
What data we do not collect
- We do not record screen content outside the customer's web app.
- We do not capture keystrokes in password fields or elements marked as sensitive by the customer's SDK configuration.
- We do not sell, rent, or share customer data with advertisers.
- Hosted leftover screenshot and audio blobs are not retained after ingest (accepted, then dropped).
Retention
- In-flight events: Session events live only in the user's browser memory (the rolling buffer) and are discarded when the tab closes, unless a bug is submitted.
- Server-stored reports: Replay and timeline events are purged after the plan's event-retention window: 7 days on Free and 30 days on Pro. Issue metadata remains until the issue, project, or account is deleted. Other plans follow their listed event-retention window.
- Account data: We keep user, org, and team data until the account is deleted. Closed accounts are removed on request (see "Your rights" below) and otherwise after 12 months of inactivity.
- Logs: Request traces and error logs are kept for up to 90 days for security and reliability.
Your rights
You can exercise GDPR/ePrivacy rights directly through the BugTape API or by emailing hi@bugtape.ai.
- Access / export:
POST /v1/auth/data-export(authenticated) returns a JSON blob of every record tied to your account — user row, org memberships, projects, bug reports you filed, comments, notifications, API keys, and integrations you touched. Rate-limited to once per hour. - Erasure:
POST /v1/auth/data-delete/requestfollowed byPOST /v1/auth/data-delete/confirm. The first call emails a single-use token (valid for 24 hours); the second completes the delete. Bugs filed to a shared organization remain as org-owned artifacts but are disassociated from you. - Rectification: update your profile from the console, or email support.
- Objection / restriction: email hi@bugtape.ai.
Cookies and local storage
We aim to keep the surface minimal. On bugtape.ai and the console we use:
- Session JWT (first-party, 1-hour lifetime) and refresh token (30 days) — stored in
localStorageso you stay signed in. Strictly necessary for the console to function. - Console preferences (theme, recent filters, dismissed banners) — stored locally, never transmitted.
- Landing diagnostics choice — optional diagnostic capture starts only after you enable it. We store that choice in
localStorage.bugtape_diagnostics_consent. You can disable diagnostics from the landing page footer.
We do not set tracking cookies, third-party cookies, or advertising identifiers.
Subprocessors
BugTape is hosted on Fly.io (Sydney) with managed Postgres on Neon (AWS ap-southeast-2 region). Email is delivered via Resend. AI summaries use OpenAI, Anthropic, or Google AI depending on plan — only the relevant event slice is sent, never raw account PII.
Early-access note
BugTape is in a controlled early-access phase. Some policies above (e.g. formal DPA availability and retention tiering per plan) are being formalized. If you need a signed DPA before onboarding, contact us.
Contact
Data protection, privacy, or security questions: hi@bugtape.ai. We aim to respond within 5 business days.