Rebug - Screen Capture & Bug Reporting
Jul 14, 2025
After discovering Jam.dev, I really liked their approach to creating and sharing bug reporting assets. Instead of taking screenshots, uploading them somewhere, copy-pasting URLs and browser info into a ticket, you just click an extension button and everything is captured with context. But I wanted to build something similar myself to understand how it all works under the hood. I already did a minimal and very simple browser extension before (see Copy URL with Title - Firefox Extension) but this would be a more challenging project.
Rebug is a screen capture and bug reporting platform consisting of a Chrome extension and a web application. It lets you capture screenshots or record videos, automatically collects page context (URL, browser, OS), and optionally uploads everything to a central server for team collaboration.
How it works
The browser extension adds a quick-access popup for capturing content. You can work completely offline (just save locally) or authenticate to upload reports to the web dashboard.
Screenshot capture
Two modes: capture the full visible page instantly, or select a specific region.
The region selector lets you drag to select exactly what you want to capture, which is perfect for highlighting specific UI issues.
After capturing, a modal appears with options to copy to clipboard, download locally, or upload to your dashboard.
Video recording
Click record and Chrome’s native screen picker lets you choose a tab, window, or entire screen. Recording controls appear on the page so you can stop when ready.
The extension handles all the tricky parts: WebM encoding, duration metadata fixes (browsers don’t always set it correctly), and automatic thumbnail generation from the first frame.
Reports with context
Every capture includes metadata: the page URL, browser version, operating system, and timestamp. You can add a title and description, then upload to a board.
This context is crucial for reproducing bugs. No more “what browser were you using?” back-and-forth.
The web dashboard
All uploaded reports land in your dashboard, organized by boards. Think of boards as projects or features.
Videos play on hover for quick previews, and clicking any report shows the full details with all metadata.
Technical bits
Built as a monorepo with two main parts:
Extension: Uses WXT (modern extension framework), Svelte 5, and Tailwind. The architecture uses Shadow DOM to inject UI without conflicting with host pages. Video recording runs in an offscreen document since Manifest V3 service workers can’t access media APIs.
Server: Rust backend with Axum and SQLite, serving a SvelteKit frontend. The backend uses clean architecture with separate layers for API, domain logic, and infrastructure. Type safety everywhere—Rust generates TypeScript types automatically.
The extension works offline by default. Authentication is optional and enables server sync.
Browser support
Fully functional on Chrome/Chromium. Firefox support is incomplete due to differences in Manifest V3 implementation and extension APIs.
What’s next
The core features work well, but there’s room for growth: full Firefox support, collaborative annotations, team workspaces, advanced search, and integrations with tools like Jira or GitHub.
For now, it’s an ok tool for visual bug reporting with automatic context capture.
Source code: GitHub - Rebug