Pixel-perfect interactive replay using rrweb. Not a video — you can inspect elements, scroll, and resize.
Every log, warning, error and uncaught exception with precise timestamps synced to the replay timeline.
URL, method, status, headers, duration and response bodies. See exactly what the API returned when the bug happened.
Clicks, inputs, and navigations logged in order. Jump to any interaction on the timeline to see what the user did.
Add comments at any point in the timeline. Threaded replies with email notifications to keep the team in sync.
Generate a ready-to-run .spec.ts file from any recording. Reproduce bugs in CI automatically.
Hover over any element in the replay to inspect attributes and computed styles, like DevTools frozen in time.
Chrome and Firefox extensions for full-featured recording including multi-page navigations.
One script tag to add a "Record Bug" button to any site. No installation required for your users.
SQLite + local disk or any S3-compatible storage. No external dependencies, runs anywhere with Docker.
Create issues and tickets directly from recordings. Bidirectional sync — mark a reel as done to close the issue, or close it to mark the reel as done.
SDK records continuously in a rolling buffer. When a bug happens, the last N seconds are already captured — no need to reproduce.
Webhook notifications for new recordings, comments, and done reels. Works with Slack, Discord, Mattermost, or any HTTP endpoint.
Get bugreel running on your infrastructure in seconds.
docker run -p 7777:7777 \
-e NUXT_JWT_SECRET=your-secret \
-v bugreel-data:/data \
patatra/bugreelAvailable at http://localhost:7777
git clone https://github.com/AnthonySendra/bugreel.git
cd bugreel/app
npm install
NUXT_JWT_SECRET=your-secret npm run devAvailable at http://localhost:7777
Your server is running. Here's how to start recording bugs.
Register to create your first workspace and application.
After signing in, create a workspace (e.g. your team name) then add an application inside it (e.g. "Frontend", "Dashboard").
Each application gets its own reel feed. The endpoint URL for the extension/SDK will be generated in the next step.
Open your application and go to the API Tokens tab. Create a new token — an endpoint URL is generated that contains everything the extension and SDK need to upload recordings.
Application → API Tokens → Create token
Copy the endpoint URL for your application — it's only shown once.
Generated URL format:
https://your-server/api/ingest?token={token}Add this to any page with the endpoint URL from step 3. A floating "Record Bug" button will appear — recordings are uploaded automatically.
<script
src="https://your-bugreel-server/sdk/recorder.js"
data-endpoint="YOUR_ENDPOINT_URL"
></script>For full-featured recording with multi-page navigation support (Chrome & Firefox). Paste the endpoint URL from step 3 into the extension:
Open the extension popup → paste your endpoint URL
https://your-server/api/ingest?token={token}The URL contains the server address and token — no other configuration needed.
Recordings appear in your application's reel feed. Click any reel to open the interactive viewer with synchronized DOM replay, console, network, and interaction panels. Share the link with your team — add timestamped comments for context.