- docs/adr/README.md: format spec, rules, index - 0001: Tauri v2 + React stack - 0002: filesystem as source of truth - 0003: single note model (no tabs) - 0004: vault vs app settings storage - 0005: Tauri iOS for iPad (vs SwiftUI) - CLAUDE.md: ADR process — when to read, when to create, when to supersede
1.6 KiB
1.6 KiB
type, id, title, status, date
| type | id | title | status | date |
|---|---|---|---|---|
| ADR | 0003 | Single note open at a time (no tabs) | active | 2026-03-24 |
Context
The app originally had a tab bar allowing multiple notes to be open simultaneously (similar to a browser or code editor). After building and shipping it, the tab model was found to add significant UI complexity, state management overhead, and confusion — without a proportional benefit for a notes app.
Decision
Remove the tab bar. Only one note is open at a time. Navigation history (Back/Forward with Cmd+[/]) replaces tabs for moving between recently visited notes. Closed tab history and useTabManagement are removed.
Alternatives considered
- Keep tabs: familiar UX, allows comparing notes side by side. Rejected — adds ~2000 lines of complexity, confusing state (which tab is "active"?), and breaks the "editor is sacred" principle.
- Tabs + single-note toggle: configurable per user. Rejected — doubles the state surface and testing burden.
- Split pane (two notes at once): useful for reference. Deferred — can be added later without tabs, via a dedicated split layout.
Consequences
- Removes ~2000 lines of code (
TabBar,useClosedTabHistory,useEditorTabSwap,tabLayout) handleSelectNotereplaces the current note instead of adding a tab- Cmd+W (close tab) and Cmd+Shift+T (reopen closed tab) removed from shortcuts
- Back/Forward navigation (Cmd+[/Cmd+]) preserves history without tab state
- Significant simplification of
App.tsxand editor state - Triggers re-evaluation if: multi-note workflows become a top user request