Original Idea
Tab Hoarder Rescue A browser extension that detects when you have too many tabs open, groups them by topic, and lets you save sessions for later without losing your place.
Product Requirements Document (PRD): Tab Hoarder Rescue (v2026.1)
1. Executive Summary
Tab Hoarder Rescue is a next-generation browser extension designed to eliminate "tab fatigue" and cognitive overload. By leveraging local-first AI and the 2026 Manifest V3 standards, the application automatically monitors browser state, clusters tabs into semantic groups using WebGPU-accelerated NLP, and allows users to persist or archive research sessions to a cloud-synced dashboard. It transforms the browser from a cluttered workspace into a structured, searchable knowledge base.
2. Problem Statement
Modern users (Developers, Researchers, PMs) suffer from "Tab Hoarding," where 40+ open tabs lead to:
- Performance Degradation: Excessive memory consumption and CPU lag.
- Cognitive Overload: Difficulty locating specific information across multiple windows.
- Loss of Context: Fear of closing tabs leads to "context rot," where users keep irrelevant tabs open for weeks "just in case."
3. Goals & Success Metrics
- Goal 1: Reduce average open tabs per user by 60% within the first 30 days.
- Goal 2: Enable users to find any archived tab in < 3 seconds via global search.
- Goal 3: Minimize browser overhead by offloading heavy clustering to Web Workers/WebGPU.
- Success Metrics:
- DAU/MAU: Aiming for 40% retention (Productivity benchmark).
- Action Rate: Percentage of users who utilize the "Auto-Group" feature when prompted.
- Sync Reliability: < 0.1% conflict rate in local-to-cloud synchronization.
4. User Personas
| Persona | Pain Point | Goal | | :--- | :--- | :--- | | The Researcher | 100+ tabs across 5 windows for a single paper. | Deep-link preservation and semantic organization. | | The Dev | Documentation, Stack Overflow, and PR tabs cluttering the workspace. | Context switching between "Coding" and "Admin" tasks. | | The Marketer | Dozens of competitor sites and trend reports. | Quick archiving and sharing workspace sessions with the team. |
5. User Stories
- As a researcher, I want the extension to detect when I have 20+ tabs open and offer to group them by topic so I can focus on one task at a time.
- As a developer, I want to save my current "Bug Fix" session and close all related tabs, knowing I can restore them exactly as they were tomorrow morning.
- As a student, I want to search for a keyword from a tab I closed three days ago across all my saved sessions.
- As a power user, I want my tab groups to sync across Chrome (work) and Firefox (home) seamlessly.
6. Functional Requirements
6.1. Real-time Monitoring & Alerting
- Configurable "Panic Threshold" (Default: 20 tabs).
- Visual indicator in the browser toolbar/side panel when the threshold is exceeded.
6.2. AI-Powered Auto-Grouping
- Semantic Clustering: Uses
@huggingface/transformersto group tabs by content similarity, not just domain. - Labeling: Automatically generates 2-3 word titles for groups (e.g., "JS Optimization Docs").
6.3. Session Management
- One-Click Save: Close a group of tabs and save metadata to local storage.
- Restore: Re-open all tabs in a group in a new window or current window.
- Duplicate Cleanup: Identify and close identical URLs or near-duplicate content.
6.4. Global Search & Dashboard
- React-based dashboard for managing saved sessions.
- Full-text search across page titles, URLs, and AI-generated summaries.
7. Technical Requirements (2026 Stack)
7.1. Frontend & Extension Framework
- Framework: WXT (Web Extension Toolkit) for cross-browser (Chrome/Firefox/Edge) compatibility.
- Library: React v19.2.3 (utilizing React Compiler 1.0 for zero-useMemo development).
- Build Tool: Vite v7.3.1 (Rust-powered/Rolldown).
- Styling: Tailwind CSS v4.1.18 (CSS-first configuration, Oxide engine).
- UI Standard: Side Panel API for persistent user interaction.
7.2. AI & Data Processing
- In-Browser NLP:
Transformers.js v3.xusingXenova/all-MiniLM-L6-v2(quantized). - Acceleration: WebGPU for model inference; Web Workers for non-blocking clustering.
- Algorithms: DBSCAN for density-based clustering of tab embeddings.
7.3. Backend & Sync
- Runtime: Node.js 20+ (LTS).
- Server: Fastify with SSE (Server-Sent Events) for real-time sync.
- ORM: Drizzle ORM for type-safe PostgreSQL interactions.
- Database: PostgreSQL (Cloud) and Dexie.js (Local IndexedDB).
7.4. Security
- Encryption: AES-256-GCM using the
SubtleCryptoAPI. - Key Derivation: Argon2id (WASM-based).
- Architecture: Zero-Knowledge; keys stored only in
chrome.storage.session.
8. Data Model
| Entity | Fields | Relationship | | :--- | :--- | :--- | | User | id, email, encrypted_vault_key | 1:N with UserSession | | UserSession | id, name, created_at, is_archived, color_code | 1:N with TabItem | | TabItem | id, session_id, url, title, fav_icon, embedding_vector | Belongs to UserSession | | TabGroup | id, label, cluster_score, keywords | Logical metadata for grouping |
9. API Specification (Internal Sync Service)
POST /api/v1/sync/push: Accepts encrypted deltas from the extension.GET /api/v1/sync/pull: Streams changes using SSE from PostgreSQL WAL.POST /api/v1/ai/summarize: (Optional) Fallback for GPT-5-nano summarization if local WebGPU is unavailable.
10. UI/UX Requirements
- Side Panel: The primary interface for "Active Tabs" and "Quick Actions."
- Dashboard: A full-page React app (accessible via
chrome-extension://.../dashboard.html) featuring a Kanban-style view of saved sessions. - Context Menu: "Add to existing group" or "Archive this branch" on right-click.
- Accessibility: Support for
prefers-reduced-motionand full keyboard navigation (Tab/Shift-Tab) through the tab list.
11. Non-Functional Requirements
- Performance: Clustering of 50 tabs must take < 500ms using WebGPU.
- Privacy: No tab URLs or titles are sent to the server unencrypted.
- Reliability: The extension must function 100% offline (local-first).
- Constraint: Compliance with Manifest V3 (no remotely hosted code).
12. Out of Scope
- Content script injection for modifying webpage UI (Ad-blocking).
- Native mobile applications (Focus is strictly browser extension).
- Social sharing of tab groups (MVP is single-user focused).
13. Risks & Mitigations
- Risk: Manifest V3 Service Worker termination during sync.
- Mitigation: Use
chrome.storage.sessionfor state and Background Sync API for retry logic.
- Mitigation: Use
- Risk: High memory usage of NLP models.
- Mitigation: Use quantized "Model2Vec" versions (<10MB) and offload to Offscreen Documents if needed.
- Risk: Sync conflicts between browsers.
- Mitigation: Implement Last-Write-Wins (LWW) with Lamport Clocks for deterministic merging.
14. Implementation Tasks
Phase 1: Project Setup
- [ ] Initialize extension using WXT with React template.
- [ ] Configure Vite 7.3.1 and Tailwind CSS 4.1.18 with Oxide engine.
- [ ] Set up Dexie.js for local IndexedDB schema (UserSession/TabItem).
- [ ] Implement Manifest V3 Side Panel API boilerplate.
Phase 2: Tab Monitoring & AI Engine
- [ ] Implement
chrome.tabs.onUpdatedandonRemovedlisteners in Service Worker. - [ ] Integrate Transformers.js v3 with WebGPU support in a Web Worker.
- [ ] Build the DBSCAN clustering logic to group tabs by title/URL embeddings.
- [ ] Create the "Auto-Group" UI prompt in the Side Panel.
Phase 3: Session Persistence & Search
- [ ] Develop the "Save Session" logic (Archiving tabs to IndexedDB).
- [ ] Build the React 19 Dashboard with
liveQueryfrom Dexie.js. - [ ] Implement global search using Dexie's full-text capabilities.
- [ ] Add "Duplicate Tab" detection and one-click removal.
Phase 4: Cloud Sync & Encryption
- [ ] Set up Fastify backend with Drizzle ORM and PostgreSQL.
- [ ] Implement AES-256-GCM encryption for all synced data.
- [ ] Build the SSE (Server-Sent Events) relay for real-time multi-browser sync.
- [ ] Integrate Auth0 for user identity management.
Phase 5: Polish & Deployment
- [ ] Audit permissions for "Principle of Least Privilege" (MV3 compliance).
- [ ] Add AI-powered summaries for tab groups (using GPT-4.1-mini/nano).
- [ ] Perform performance stress test with 200+ open tabs.
- [ ] Submit to Chrome Web Store and Firefox Add-ons (using WXT unified build).