Skip to main content
┌═══════════════════════════════════════════════════════════════════════════════┐
│                                                                               │
│     SMART TAB REUSE & CLEANUP                                                 │
│                                                                               │
│     THE CENTER: "VariableMD extends the Brick from Terminal to Documents"     │
│                                                                               │
└═══════════════════════════════════════════════════════════════════════════════┘

The Problem: Tab Explosion

┌──────────────────────────────────────────────────────────────────────────────┐
│  WITHOUT SMART REUSE                                                         │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Opening files one by one...                                                │
│                                                                              │
│   ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐                  │
│   │a.md  │b.md  │c.json│d.ts  │e.md  │f.json│g.ts  │h.md  │                  │
│   └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘                  │
│                                                                              │
│   Result: 8 tabs for 8 files                                                 │
│   Problem: Cognitive overload, hard to manage                                │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

The Solution: Extension-Based Grouping

┌──────────────────────────────────────────────────────────────────────────────┐
│  SMART TAB REUSE                                                             │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Same files, but grouped by type:                                           │
│                                                                              │
│   ┌──────┬──────┬──────┐                                                     │
│   │ .md  │ .json│ .ts  │                                                     │
│   └──────┴──────┴──────┘                                                     │
│        │      │      │                                                       │
│        v      v      v                                                       │
│   ┌───────┐ ┌───────┐ ┌───────┐                                              │
│   │ a.md  │ │c.json │ │ d.ts  │                                              │
│   │ b.md  │ │f.json │ │ g.ts  │                                              │
│   │ e.md  │ └───────┘ └───────┘                                              │
│   │ h.md  │                                                                  │
│   └───────┘                                                                  │
│                                                                              │
│   Result: 3 tabs for 8 files                                                 │
│   Benefit: Clean workspace, same file type = same tab                        │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
Extension = Renderer = CodexMono Application: Files with the same extension use the same renderer. This makes tab reuse semantically correct, not just efficient.

How Smart Reuse Decides

┌──────────────────────────────────────────────────────────────────────────────┐
│  DECISION FLOW                                                               │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Open File Request                                                          │
│        │                                                                     │
│        v                                                                     │
│   ┌──────────────────┐                                                       │
│   │ Same file open?  │                                                       │
│   └──────────────────┘                                                       │
│        │         │                                                           │
│       YES       NO                                                           │
│        │         │                                                           │
│        v         v                                                           │
│   ACTIVATE   ┌──────────────────┐                                            │
│   EXISTING   │ Same extension   │                                            │
│   TAB        │ tab exists?      │                                            │
│              └──────────────────┘                                            │
│                   │         │                                                │
│                  YES       NO                                                │
│                   │         │                                                │
│                   v         v                                                │
│               REUSE     CREATE                                               │
│               TAB       NEW TAB                                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Smart Reuse in Action

Scenario A: Same Extension

┌──────────────────────────────────────────────────────────────────────────────┐
│  SAME EXTENSION REUSE                                                        │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Current:  [README.md]  [config.json]                                       │
│                  ^                                                           │
│                  │                                                           │
│              (active)                                                        │
│                                                                              │
│   User opens: INSTALL.md                                                     │
│                                                                              │
│   Decision:                                                                  │
│     - New file extension: .md                                                │
│     - Active tab extension: .md                                              │
│     - SAME!                                                                  │
│                                                                              │
│   Result:   [INSTALL.md]  [config.json]                                      │
│                  ^                                                           │
│                  │                                                           │
│           (reused tab)                                                       │
│                                                                              │
│   THE BRICK GUARANTEE:                                                       │
│   Same .md extension = Same renderer = Same CodexMono                        │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Scenario B: Different Extension, Tab Exists

┌──────────────────────────────────────────────────────────────────────────────┐
│  FIND MATCHING TAB                                                           │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Current:  [README.md]  [config.json]  [index.ts]                           │
│                               ^                                              │
│                               │                                              │
│                           (active)                                           │
│                                                                              │
│   User opens: INSTALL.md                                                     │
│                                                                              │
│   Decision:                                                                  │
│     - New file extension: .md                                                │
│     - Active tab extension: .json                                            │
│     - Different! Search for .md tab...                                       │
│     - Found: README.md tab                                                   │
│                                                                              │
│   Result:   [INSTALL.md]  [config.json]  [index.ts]                          │
│                  ^                                                           │
│                  │                                                           │
│           (reused + activated)                                               │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Scenario C: No Matching Tab

┌──────────────────────────────────────────────────────────────────────────────┐
│  CREATE NEW TAB                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Current:  [README.md]  [config.json]                                       │
│                               ^                                              │
│                               │                                              │
│                           (active)                                           │
│                                                                              │
│   User opens: index.ts                                                       │
│                                                                              │
│   Decision:                                                                  │
│     - New file extension: .ts                                                │
│     - Search for .ts tab... Not found                                        │
│     - Create new tab                                                         │
│                                                                              │
│   Result:   [README.md]  [config.json]  [index.ts]                           │
│                                              ^                               │
│                                              │                               │
│                                         (new tab)                            │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
Extension Grouping: Files are grouped by extension because the extension determines the renderer. This aligns with how developers mentally categorize files.

Tab History: Browser-Like Navigation

┌──────────────────────────────────────────────────────────────────────────────┐
│  TAB HISTORY                                                                 │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Each tab remembers its history:                                            │
│                                                                              │
│   ┌───────────────────────────────────────────────────────┐                  │
│   │  Tab: .md files                                       │                  │
│   │                                                       │                  │
│   │  History: A.md -> B.md -> C.md                        │                  │
│   │                           ^                           │                  │
│   │                           │                           │                  │
│   │                       (current)                       │                  │
│   │                                                       │                  │
│   │  [<] Back    [>] Forward                              │                  │
│   └───────────────────────────────────────────────────────┘                  │
│                                                                              │
│   Navigate back to B.md, then open D.md:                                     │
│                                                                              │
│   ┌───────────────────────────────────────────────────────┐                  │
│   │  Tab: .md files                                       │                  │
│   │                                                       │                  │
│   │  Before: A.md -> [B.md] -> C.md                       │                  │
│   │                     ^                                 │                  │
│   │                                                       │                  │
│   │  After:  A.md -> B.md -> [D.md]                       │                  │
│   │                           ^                           │                  │
│   │                                                       │                  │
│   │  (C.md replaced - new branch created)                 │                  │
│   └───────────────────────────────────────────────────────┘                  │
│                                                                              │
│   Git-style branching: Forward history discarded on new path                 │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
Git-Style Branching: Navigate back, open new file, forward history is discarded. This prevents confusing non-linear navigation.

Editor Protection

┌──────────────────────────────────────────────────────────────────────────────┐
│  EDITOR MODE PRESERVATION                                                    │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   You're editing a file:                                                     │
│                                                                              │
│   ┌───────────────────────────────────────────────────────┐                  │
│   │  Tab: notes.md (EDITOR MODE)                          │                  │
│   │                                                       │                  │
│   │  Unsaved work here...                                 │                  │
│   │  _                                                    │                  │
│   └───────────────────────────────────────────────────────┘                  │
│                                                                              │
│   User opens: README.md                                                      │
│                                                                              │
│   Decision:                                                                  │
│     - Active tab is in EDITOR mode                                           │
│     - ALWAYS create new tab (protect unsaved work)                           │
│                                                                              │
│   Result:                                                                    │
│   ┌───────────────────┐  ┌───────────────────┐                               │
│   │ notes.md (EDITOR) │  │ README.md (VIEW)  │                               │
│   │ Unsaved work safe │  │ New tab           │                               │
│   └───────────────────┘  └───────────────────┘                               │
│                                                                              │
│   Your unsaved work is protected                                             │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
Editor Mode Preservation: If you’re editing a file, opening a new file always creates a new tab. This prevents accidental data loss.

Closing Tabs: Graceful Cleanup

┌──────────────────────────────────────────────────────────────────────────────┐
│  TAB CLOSE BEHAVIOR                                                          │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Close active tab (others remain):                                          │
│                                                                              │
│   Before:  [README.md]  [config.json*]  [index.ts]                           │
│                              ^                                               │
│                           (closing)                                          │
│                                                                              │
│   After:   [README.md]  [index.ts*]                                          │
│                              ^                                               │
│                         (auto-activated)                                     │
│                                                                              │
│   ───────────────────────────────────────────────────────────────            │
│                                                                              │
│   Close last tab:                                                            │
│                                                                              │
│   Before:  [README.md*]                                                      │
│                 ^                                                            │
│             (only tab)                                                       │
│                                                                              │
│   After:   [V] button disabled                                               │
│            Panel hidden                                                      │
│            Clean slate                                                       │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
Graceful Degradation: When the last tab closes, the system returns to initial state. Panel hides, V button disables, ready for next session.

Decision Matrix

┌──────────────────────────────────────────────────────────────────────────────┐
│  SMART REUSE DECISION MATRIX                                                 │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   ┌─────────────┬─────────────┬───────────────────────────┐                  │
│   │ Condition   │ Match       │ Action                    │                  │
│   ├─────────────┼─────────────┼───────────────────────────┤                  │
│   │ Same file   │ -           │ Activate existing tab     │                  │
│   ├─────────────┼─────────────┼───────────────────────────┤                  │
│   │ Editor mode │ -           │ Create new tab (protect)  │                  │
│   ├─────────────┼─────────────┼───────────────────────────┤                  │
│   │ Same ext    │ Active tab  │ Reuse active tab          │                  │
│   ├─────────────┼─────────────┼───────────────────────────┤                  │
│   │ Same ext    │ Other tab   │ Reuse and activate        │                  │
│   ├─────────────┼─────────────┼───────────────────────────┤                  │
│   │ No match    │ -           │ Create new tab            │                  │
│   └─────────────┴─────────────┴───────────────────────────┘                  │
│                                                                              │
│   Priority: Exact path > Same extension > New tab                            │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Browser vs VariableMD

┌──────────────────────────────────────────────────────────────────────────────┐
│  COMPARISON                                                                  │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   BROWSER:                                                                   │
│   ┌───────────────────────────────────────────────────────────────────┐      │
│   │ - Every URL = new tab                                             │      │
│   │ - No automatic reuse                                              │      │
│   │ - User manages proliferation                                      │      │
│   │ - Tabs can number in hundreds                                     │      │
│   └───────────────────────────────────────────────────────────────────┘      │
│                                                                              │
│   VARIABLEMD:                                                                │
│   ┌───────────────────────────────────────────────────────────────────┐      │
│   │ - Same file = existing tab                                        │      │
│   │ - Same extension = may reuse                                      │      │
│   │ - Automatic tab management                                        │      │
│   │ - Max 10 tabs (200 files via history)                             │      │
│   └───────────────────────────────────────────────────────────────────┘      │
│                                                                              │
│   WHY THE DIFFERENCE:                                                        │
│   - Browsers: General-purpose (many unrelated sites)                         │
│   - VariableMD: Document-focused (related files in project)                  │
│   - Similar files viewed in sequence = perfect for reuse                     │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

The Brick Guarantee

┌──────────────────────────────────────────────────────────────────────────────┐
│  THE BRICK GUARANTEE                                                         │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│                                                                              │
│        Extension                                                             │
│            │                                                                 │
│            v                                                                 │
│        Renderer                                                              │
│            │                                                                 │
│            v                                                                 │
│        CodexMono                                                             │
│            │                                                                 │
│            v                                                                 │
│   ┌───────────────────┐                                                      │
│   │    THE BRICK      │                                                      │
│   │                   │                                                      │
│   │  Consistent       │                                                      │
│   │  rendering for    │                                                      │
│   │  same file types  │                                                      │
│   └───────────────────┘                                                      │
│                                                                              │
│   Whether tab is reused or new:                                              │
│   CodexMono renders content IDENTICALLY                                      │
│                                                                              │
│   Smart reuse is not optimization - it's semantic correctness                │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
The Brick Guarantee: Whether a tab is reused or newly created, CodexMono (600-unit monospace font) ensures identical rendering. Extension-based grouping preserves this consistency.

Key Insights

┌──────────────────────────────────────────────────────────────────────────────┐
│  SUMMARY                                                                     │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   1. EXTENSION-BASED GROUPING                                                │
│      Same extension = Same renderer = Same Brick                             │
│      Tab reuse is semantically correct                                       │
│                                                                              │
│   2. TAB LIMIT + HISTORY                                                     │
│      10 tabs x 20 history = 200 files accessible                             │
│      Prevents explosion without losing access                                │
│                                                                              │
│   3. EDITOR PROTECTION                                                       │
│      Editor mode always creates new tab                                      │
│      Unsaved work never lost                                                 │
│                                                                              │
│   4. GRACEFUL CLEANUP                                                        │
│      Close last tab = return to initial state                                │
│      No orphaned UI elements                                                 │
│                                                                              │
│   5. THE BRICK GUARANTEE                                                     │
│      Reused or new, CodexMono renders identically                            │
│      Visual consistency maintained                                           │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

  • CodexMono: The fundamental monospace font that enables consistent rendering
  • Monokinetics: Unified Human + AI visual experience
  • The Brick: CodexMono as the fundamental rendering unit
  • SMPC/OFAC: Simplicity principles guiding the design