# Non-Linear: Ideas Borrowed from Existing Products ## Overview Design ideas mined from existing products, evaluated against Non-Linear's "focused dev tool" philosophy. ## ✅ Adopted for v0.1 ### Keyboard-First + Command Palette (from Linear) Every action has a keyboard shortcut. `Cmd+K` command palette is the primary navigation method. Graph navigation via `Alt+↑/↓/←/→`. Context-aware palette shows different actions depending on current view and selection. ### Triage Inbox / Rootless Inbox (from Linear) Nodes without a parent land in a staging inbox. Triage = assigning a parent, which places the node in the tree. Decouples "capture" from "organize." Agents can triage via API. ### Backlinks / Inbound Link Surfacing (from Obsidian) Every node surfaces inbound lateral links: "3 tasks blocked by this." Count badges on nodes in layered overview. Agents can query "what depends on this node?" for impact analysis. ### PR / Commit ↔ Node Coupling (from GitHub) Short typeable node IDs (`NL-42`). Commit message parsing (`fixes NL-42` → status change). PR linkage appears in node's activity feed. Branch naming support (`feature/NL-42-login-flow`). GitHub/GitLab webhooks trigger node updates. ### Scoped Conversations + Selective Watching (from Slack) Watch granularity: single node, subtree, or project-wide. Event type filters (status changes, comments, agent actions). Mute noisy subtrees. Agent-specific filter. ### Plan-Then-Apply (from Terraform/Pulumi) Structural changes show preview: reparent consequences, bulk operation impact, deletion cascades, permission boundary changes. Agent proposals submitted as reviewable "plans." ### Cycles as Time-Boxing (from Linear) Cross-cutting temporal view over spatial tree. Cycle = named set of node references + date range. Color highlighting in all views. Agent scoping to current cycle. ### Complete Change History / Blame Timeline (from Git) Every mutation is an event: status, assignment, comment, link, reparent, label. Compact timeline in focus widget. Diff-style for structural changes. Agent-readable via API. ### Breadcrumb Navigation (from VS Code) Full root→node path as clickable segments. Always visible in focus widget. Keyboard shortcut to jump to any ancestor. ### Natural Language Node Creation (from Todoist) Parse tree path (`Auth > Login flow`), labels (`#bug`, `p0`), assignment (`@agent-1`) from text. Integrated into command palette. Fuzzy-matches node names. Falls back to inbox if path unresolvable. ## ⏳ Deferred ### Auto-Linking External Signals (from Sentry/PagerDuty) — v0.3+ Production errors auto-route to the right component subtree. Deferred because it can overwhelm UI and requires mature graph structure before automation. ## ❌ Not Adopting ### Rich Document Blocks (from Notion) Turns dev tool into workspace platform. Nodes have rich markdown descriptions, not embedded apps. ### Multiplayer Presence / Cursors (from Figma) Overkill for small teams (3-5). Ambient awareness handled by activity feed and scoped notifications. ### Canvas / Sketch-to-Structure (from Excalidraw) Cool demo, unclear daily value. Entry experience (create root → add children) is fast enough. ## Summary Table | Idea | Source | Status | Version | |------|--------|--------|---------| | Keyboard-first + Cmd+K | Linear | ✅ Adopted | v0.1 | | Triage / rootless inbox | Linear | ✅ Adopted | v0.1 | | Backlinks | Obsidian | ✅ Adopted | v0.1 | | PR/commit coupling | GitHub | ✅ Adopted | v0.1 | | Scoped conversations + watching | Slack | ✅ Adopted | v0.1 | | Plan-then-apply | Terraform | ✅ Adopted | v0.1 | | Cycles (color-highlighted) | Linear | ✅ Adopted | v0.1 | | Complete change history | Git | ✅ Adopted | v0.1 | | Breadcrumb navigation | VS Code | ✅ Adopted | v0.1 | | Natural language creation | Todoist | ✅ Adopted | v0.1 | | Auto-link external signals | Sentry/PagerDuty | ⏳ Deferred | v0.3+ | | Rich document blocks | Notion | ❌ Rejected | — | | Multiplayer presence | Figma | ❌ Rejected | — | | Canvas sketch-to-structure | Excalidraw | ❌ Rejected | — |