Tab Hoarder Rescue

Productivity

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:

  1. Performance Degradation: Excessive memory consumption and CPU lag.
  2. Cognitive Overload: Difficulty locating specific information across multiple windows.
  3. 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/transformers to 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.x using Xenova/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 SubtleCrypto API.
  • 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-motion and 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.session for state and Background Sync API for retry logic.
  • 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.onUpdated and onRemoved listeners 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 liveQuery from 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).