/ docs / competing-extension-feature-comparison.md
competing-extension-feature-comparison.md
  1  # Competing Extension Feature Comparison: Simple Tab Groups vs Mnemonic
  2  
  3  ## Executive Summary
  4  
  5  This document analyzes the feature set of **Simple Tab Groups (STG)**, a popular Firefox tab management extension, and compares it against **Mnemonic** to identify implementation gaps and opportunities. The goal is to prioritize high-value features that would enhance Mnemonic's functionality for both Chrome and Firefox users.
  6  
  7  ---
  8  
  9  ## Feature Matrix: STG vs Mnemonic
 10  
 11  | Feature Category | Simple Tab Groups | Mnemonic | Status |
 12  |------------------|-------------------|----------|--------|
 13  | **Tab Group Creation** | Yes | Yes (Workspaces) | Implemented |
 14  | **Group Naming** | Yes | Yes | Implemented |
 15  | **Group Switching** | Yes | Yes (Context Switch) | Implemented |
 16  | **Drag & Drop Tabs** | Yes | Yes | Implemented |
 17  | **Group Icons/Colors** | Yes | Yes | Implemented |
 18  | **Keyboard Shortcuts** | Yes (F8 default) | Partial | Gap |
 19  | **Sidebar Support** | Yes | No (Dashboard only) | Gap |
 20  | **Per-Group Notes** | Yes | Yes (Logseq integration) | Implemented |
 21  | **Backup/Restore** | Yes (JSON) | Yes (JSON + Sync) | Implemented |
 22  | **Cross-Device Sync** | No (manual transfer) | Yes (REST Bridge) | Mnemonic Advantage |
 23  | **Container Integration** | Yes (Firefox only) | No | Gap |
 24  | **URL Auto-Move Rules** | Yes | No | Gap |
 25  | **Tab Hiding API** | Yes (Firefox tabHide) | No (uses windows) | Different Approach |
 26  | **Pinned Tabs Per Group** | Partial | Yes | Implemented |
 27  | **Archive/Hibernate Groups** | No (requested) | Yes | Mnemonic Advantage |
 28  | **Multiple Groups Per Window** | No | No | Neither |
 29  | **AI-Powered Organization** | No | Yes (Claude) | Mnemonic Advantage |
 30  | **Full-Text Search** | Partial (filter) | Yes (BM25 index) | Mnemonic Advantage |
 31  | **Bookmark Export** | Yes | Yes | Implemented |
 32  | **Transcendent Workspaces** | No | Yes | Mnemonic Advantage |
 33  | **Window Position Memory** | Partial | Yes (smart multi-monitor) | Mnemonic Advantage |
 34  | **Audible Tab Detection** | No | Yes | Mnemonic Advantage |
 35  | **Private Browsing Support** | No | No | Neither |
 36  
 37  ---
 38  
 39  ## Top 10 Priority Features to Implement
 40  
 41  Based on analysis of STG's most requested features and functional gaps in Mnemonic, here are the top 10 features ranked by usefulness and impact:
 42  
 43  ### 1. **Firefox Sidebar Panel Mode** ⭐⭐⭐⭐⭐
 44  **Priority: Critical | Effort: Medium**
 45  
 46  **What STG Has:**
 47  - Dedicated sidebar panel showing all groups
 48  - Persistent visibility while browsing
 49  - Quick group switching without popup
 50  
 51  **Current Mnemonic State:**
 52  - Dashboard opens as a full tab
 53  - No sidebar support
 54  
 55  **Implementation Value:**
 56  - High user demand for quick access without consuming a tab
 57  - Firefox sidebar API (`sidebarAction`) is well-supported
 58  - Would significantly improve UX for power users managing many workspaces
 59  
 60  **Recommendation:**
 61  Create a lightweight sidebar entry point that displays a condensed WorkspaceList with essential actions (switch, create, search). The main dashboard remains for advanced operations.
 62  
 63  ---
 64  
 65  ### 2. **Customizable Keyboard Shortcuts** ⭐⭐⭐⭐⭐
 66  **Priority: Critical | Effort: Low**
 67  
 68  **What STG Has:**
 69  - F8 opens group menu (customizable)
 70  - Arrow key navigation in popup
 71  - Gesture extension compatibility (Gesturefy)
 72  
 73  **Current Mnemonic State:**
 74  - No registered keyboard shortcuts
 75  - Arrow navigation exists in UI components
 76  
 77  **Implementation Value:**
 78  - Zero-click access dramatically improves workflow
 79  - Browser commands API makes this straightforward
 80  - Power users expect keyboard-driven workflows
 81  
 82  **Recommendation:**
 83  Register default shortcuts in manifest:
 84  - `Ctrl+Shift+G` - Open workspace dashboard/sidebar
 85  - `Ctrl+Shift+Right/Left` - Switch to next/previous workspace
 86  - `Ctrl+Shift+N` - Create new workspace from current tabs
 87  
 88  ---
 89  
 90  ### 3. **Firefox Multi-Account Container Integration** ⭐⭐⭐⭐⭐
 91  **Priority: High | Effort: Medium**
 92  
 93  **What STG Has:**
 94  - Assign container to group (new tabs inherit container)
 95  - Auto-move tabs by container to designated groups
 96  - Container identity preserved on restore
 97  
 98  **Current Mnemonic State:**
 99  - No container awareness
100  - Tabs restored without container context
101  
102  **Implementation Value:**
103  - Critical for privacy-focused users
104  - Essential for work/personal separation workflows
105  - Firefox's contextualIdentities API provides full support
106  
107  **Recommendation:**
108  1. Add `containerId` field to workspace types
109  2. When opening workspace tabs, use container context
110  3. Option to auto-assign workspace based on container of new tabs
111  4. Preserve container on tab capture and restore
112  
113  ---
114  
115  ### 4. **URL-Based Auto-Assignment Rules** ⭐⭐⭐⭐
116  **Priority: High | Effort: Medium**
117  
118  **What STG Has:**
119  - Regex-based URL matching rules
120  - Auto-move tabs to designated groups
121  - Domain-level matching support
122  
123  **Current Mnemonic State:**
124  - No automatic tab routing
125  - All tab assignment is manual
126  
127  **Implementation Value:**
128  - Reduces manual organization overhead
129  - Keeps workspaces organized automatically
130  - Highly requested by power users
131  
132  **Recommendation:**
133  Create a rules engine:
134  ```typescript
135  interface AutoAssignRule {
136    id: string;
137    pattern: string;        // regex or domain
138    matchType: 'domain' | 'url' | 'regex';
139    targetWorkspaceId: string;
140    enabled: boolean;
141  }
142  ```
143  Evaluate rules on `tabs.onCreated` and `tabs.onUpdated` events.
144  
145  ---
146  
147  ### 5. **Tab Discard/Suspend for Inactive Workspaces** ⭐⭐⭐⭐
148  **Priority: High | Effort: Low**
149  
150  **What STG Has:**
151  - Hidden tabs can be discarded to save memory
152  - Manual and automatic discard options
153  
154  **Current Mnemonic State:**
155  - Tabs stored as data, not live browser tabs
156  - But when workspaces open, all tabs load
157  
158  **Implementation Value:**
159  - Significant memory savings for large workspaces
160  - Faster context switching
161  - Browser's `tabs.discard()` API handles this natively
162  
163  **Recommendation:**
164  1. Add "Discard tabs when closing workspace" option
165  2. Lazy-load tabs on workspace open (load on focus)
166  3. Add "Discard all tabs in workspace" action
167  4. Show discarded state in tab list UI
168  
169  ---
170  
171  ### 6. **Group/Workspace Folders (Hierarchical Organization)** ⭐⭐⭐⭐
172  **Priority: Medium-High | Effort: Medium**
173  
174  **What STG Has:**
175  - Flat list of groups (hierarchy requested but not implemented)
176  
177  **Current Mnemonic State:**
178  - Two-level hierarchy (Parent → Children)
179  - No folder/category system for parents themselves
180  
181  **Implementation Value:**
182  - Users with 20+ contexts need meta-organization
183  - Enables project → sub-project workflows
184  - Natural extension of existing parent/child model
185  
186  **Recommendation:**
187  Add optional "Folder" workspace type that contains Parents:
188  - Folder → Parents → Children
189  - Collapsible folders in sidebar/dashboard
190  - Drag parents between folders
191  
192  ---
193  
194  ### 7. **Auto-Remove Empty Workspaces Option** ⭐⭐⭐
195  **Priority: Medium | Effort: Low**
196  
197  **What STG Has:**
198  - Requested but not implemented
199  - Empty groups remain until manually deleted
200  
201  **Current Mnemonic State:**
202  - Empty workspaces persist indefinitely
203  
204  **Implementation Value:**
205  - Reduces clutter automatically
206  - Common user request in STG issues
207  - Simple to implement with existing infrastructure
208  
209  **Recommendation:**
210  Add setting: "Auto-archive workspaces when all tabs are closed"
211  - Trigger on tab close events
212  - Check if workspace has 0 tabs
213  - Move to archive (not delete) for recovery
214  
215  ---
216  
217  ### 8. **Pinned Tabs Per Workspace (Enhanced)** ⭐⭐⭐
218  **Priority: Medium | Effort: Medium**
219  
220  **What STG Has:**
221  - Partial support with known issues
222  - Pinned tabs can "disappear" across cycles
223  
224  **Current Mnemonic State:**
225  - Saves `pinned` state per tab
226  - Restores pinned state on open
227  
228  **Gap Analysis:**
229  - Need to verify pinned tabs restore correctly in both browsers
230  - Need option to keep certain pinned tabs across all workspaces (global pins)
231  
232  **Recommendation:**
233  1. Add "Global Pinned Tabs" that persist across context switches
234  2. Test and fix any edge cases with pinned tab restoration
235  3. Add visual indicator for global vs workspace-specific pins
236  
237  ---
238  
239  ### 9. **Gesture Extension Integration** ⭐⭐⭐
240  **Priority: Medium | Effort: Low**
241  
242  **What STG Has:**
243  - Gesturefy compatibility via runtime messages
244  - Documented message API for external control
245  
246  **Current Mnemonic State:**
247  - No documented external API
248  - Message handlers exist but undocumented
249  
250  **Implementation Value:**
251  - Power users heavily rely on gestures
252  - Minimal code change - just documentation and validation
253  - Gesturefy is widely used on Firefox
254  
255  **Recommendation:**
256  1. Document external message API for gesture extensions
257  2. Add standard actions: `SWITCH_NEXT_WORKSPACE`, `SWITCH_PREV_WORKSPACE`, `OPEN_DASHBOARD`
258  3. Validate sender origin for security
259  4. Publish integration guide
260  
261  ---
262  
263  ### 10. **Startup/Restore Behavior Options** ⭐⭐⭐
264  **Priority: Medium | Effort: Medium**
265  
266  **What STG Has:**
267  - Relies on Firefox's "Restore Previous Session"
268  - Can have issues with window close order
269  - Backup restoration as safety net
270  
271  **Current Mnemonic State:**
272  - Persists workspace data
273  - Opens last state on startup (implicit)
274  
275  **Implementation Value:**
276  - Explicit user control over startup behavior
277  - Reduces "lost tabs" anxiety
278  - Matches user mental models
279  
280  **Recommendation:**
281  Add startup options:
282  1. **Resume Last Session**: Restore all open workspaces
283  2. **Start Fresh**: Open only dashboard
284  3. **Open Specific Workspace**: Configurable default
285  4. **Prompt on Startup**: Ask user what to open
286  
287  ---
288  
289  ## Features Already Superior in Mnemonic
290  
291  These STG pain points are already addressed in Mnemonic:
292  
293  | Feature | STG Issue | Mnemonic Solution |
294  |---------|-----------|-------------------|
295  | Cross-Device Sync | Manual backup transfer | REST Bridge with Syncthing |
296  | Archive Groups | Not implemented (requested) | Full archive/restore system |
297  | Search | Basic filtering only | Full-text BM25 search with ranking |
298  | AI Organization | None | Claude integration for suggestions |
299  | Multi-Monitor | Basic | Smart relative positioning |
300  | Workspace Notes | Simple text | Logseq integration |
301  | Audible Detection | None | Track and navigate to playing tabs |
302  
303  ---
304  
305  ## Features Neither Extension Has (Future Opportunities)
306  
307  1. **Multiple Groups Visible in Same Window** - Would require significant UI redesign
308  2. **Private Browsing Support** - API limitations in both browsers
309  3. **Tab Preview Thumbnails** - Performance concerns, limited API support
310  4. **Collaborative Workspaces** - Real-time sharing between users
311  5. **Time-Based Auto-Switching** - Schedule workspace changes
312  
313  ---
314  
315  ## Implementation Roadmap Recommendation
316  
317  ### Phase 1: Quick Wins (1-2 weeks)
318  - Keyboard shortcuts
319  - Auto-remove empty workspaces
320  - Tab discard option
321  - Gesture API documentation
322  
323  ### Phase 2: Core Enhancements (2-4 weeks)
324  - Firefox sidebar panel
325  - URL auto-assignment rules
326  - Startup behavior options
327  
328  ### Phase 3: Advanced Features (4-8 weeks)
329  - Container integration (Firefox)
330  - Workspace folders
331  - Enhanced pinned tabs with global pins
332  
333  ---
334  
335  ## Conclusion
336  
337  Mnemonic already surpasses Simple Tab Groups in several key areas: cross-device sync, AI integration, search capabilities, and archival features. However, implementing the top priorities above—particularly **sidebar support**, **keyboard shortcuts**, and **container integration**—would close the remaining gaps and position Mnemonic as the superior solution for both Firefox and Chrome users.
338  
339  The most impactful quick wins are **keyboard shortcuts** and **sidebar mode**, which require relatively low effort but dramatically improve daily usability for power users.