non-linear-docs/08-IDEAS-FROM-EXISTING-PRODUCTS.md

4.0 KiB

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.

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