research brief

Linear App Architecture Deconstruction

2026-04-02

Linear App Architecture Deconstruction

Design reference for Mission Control UI redesign. All observations from hands-on exploration of Linear's web app (desktop) on April 2, 2026, supplemented by Linear's docs and changelog.

1. Information Architecture

Linear organizes everything into a clear three-level hierarchy:

Workspace
  └─ Team (e.g., "Peteos")
       ├─ Issues (the atomic unit)
       ├─ Projects (groups of issues with a goal)
       └─ Views (saved filters/groupings)

Key insight for MC: We have one "team" (Pete/Vinny/David) and no need for the workspace/team layer. Our hierarchy is simpler:

Mission Control
  ├─ Tasks (the atomic unit, equivalent to Linear's Issues)
  └─ Views (Board view, List view, filtered views)

Projects in Linear are first-class objects with their own health, status, lead, target date, and progress percentage. For MC, projects are just tags on tasks. This is intentional: we don't need the overhead until the task count justifies it.

2. Navigation Architecture

[Workspace name] [Search] [+ New]
─────────────────────────────────
Inbox
My Issues
─────────────────────────────────
Workspace
  Projects
  Views
  [More]
─────────────────────────────────
Your Teams
  Peteos ▼
    Issues     (current view indicator)
    Projects
    Views
─────────────────────────────────
Try ▼
  Import issues
  Invite people
  Connect GitHub

Observations:

For MC: Our sidebar can be much simpler:

Mission Control
─────────────────────
Tasks          (Board | List toggle)
Artifacts
─────────────────────
[Automation]   (future)
[Settings]     (future)

Top bar (within content area)

Linear uses a horizontal tab bar at the top of the issues view:

[All Issues]  [Active]  [Backlog]  [⚙]     [Filter] [Display] [Layout]

For MC: Keep the layout toggle (board vs list). Skip filter builder for now. The pre-built tabs map to our columns, which serve the same purpose visually.

3. Board View (Kanban)

Column anatomy

○ Todo  4   ···  +
┌─────────────────┐
│ PET-1            │
│ ○ Get familiar   │
│ ···              │
│ Created Apr 2    │
├─────────────────┤
│ PET-2            │
│ ○ Set up teams   │
│ ···              │
│ Created Apr 2    │
└─────────────────┘

Column header: Status icon (colored circle) + status name + issue count + overflow menu (···) + add button (+)

Card anatomy:

What's NOT on the card:

Cards are extremely minimal. The philosophy is: scan titles fast, click for detail.

Hidden columns

Empty columns are collapsed into a "Hidden columns" panel on the right:

▼ Hidden columns
  ○ Backlog       0
  ◐ In Progress   0
  ● Done          0
  ⊘ Cancelled     0
  ⊘ Duplicate     0

Each shows status icon + name + count. Click to expand.

For MC: Good pattern. If Needs Review or Done are empty, collapse them to save space.

4. List View

Row anatomy (from board view observation, list is similar)

Linear's list view uses a grouped layout:

○ Todo  4   ···  +
─────────────────────────────────────────────────
  ···  PET-1  ○  Get familiar with Linear    Apr 2    👤
  ···  PET-2  ○  Set up your teams           Apr 2    👤
  ···  PET-3  ○  Connect your tools          Apr 2    👤
  ···  PET-4  ○  Import your data            Apr 2    👤

Row elements (left to right):

  1. Context menu (··· on hover)
  2. Issue ID (gray)
  3. Status icon (colored circle)
  4. Title (primary text, takes most width)
  5. Date (far right, gray)
  6. Assignee avatar (far right)
  7. Priority icon (between title and date, if set)

Display properties are configurable via the Display Options panel (docs):

Created, Updated, Assignee, Estimate

Grouping options: Status (default), Assignee, Project, Priority, Cycle, or no grouping

Group headers are sticky when scrolling (critical for long lists).

For MC: The row should be: status icon + title + activity tag + assignee avatar + blocked indicator. Keep it to one line. Priority icon if set.

5. Issue Detail View

Clicking an issue opens a full-page detail view (not a modal or side panel on desktop):

┌──────────────────────────────────────────────────────────┐
│  < Back   PET-1 Get familiar with Linear  ☆  ···        │
├──────────────────────────────┬───────────────────────────┤
│                              │ Properties ▼              │
│  Get familiar with Linear    │   ○ Todo                  │
│                              │   ··· Set priority        │
│  Welcome to Linear!          │   👤 Assign               │
│                              │                           │
│  Watch an introductory       │ Labels ▼                  │
│  video and access a list     │   ⊕ Add label             │
│  of resources below.         │                           │
│                              │ Project ▼                 │
│  [video embed]               │   ⊕ Add to project        │
│                              │                           │
│                              │                           │
└──────────────────────────────┴───────────────────────────┘

Left panel (60-70% width):

Right sidebar (30-40% width):

Key pattern: Properties are compact vertical list with icon + value. Click any to open a dropdown/selector inline. No save button; changes are instant.

For MC task detail: Same split layout. Left: title + description (markdown). Right: status selector, assignee selector, priority, tags, blocked toggle, created/updated dates. Changes save instantly on selection.

6. Issue Creation Modal

┌───────────────────────────────────────────────────┐
│  🟥 PET  ▸  New issue                    □  ✕    │
│                                                    │
│  Issue title                                       │
│  Add description...                                │
│                                                    │
│  ○ Backlog  ··· Priority  👤 Assignee              │
│             ⊕ Project   🏷 Labels  ···             │
│                                                    │
│              □ Create more     [Create issue]      │
└───────────────────────────────────────────────────┘

Observations:

For MC: Our creation is primarily chat-based ("track this:"), but the web form should match this pattern: title field, optional description, metadata bar at bottom with status/assignee/priority/tags. Single "Create" button.

7. Projects View

Projects
[All projects]  [⚙]                    [Filter] [Display] [Layout]

Name                Health        Priority  Lead  Target date  Status
─────────────────────────────────────────────────────────────────────
⊕ UI Sandbox    ○ No updates    ···       👤    📅           ○ 0%

Row elements:

Project detail page includes: description/brief, linked issues, milestones, documents, activity.

For MC: We don't need a Projects view. Projects are tags on tasks. But the health/status pattern is interesting for future: a tag summary could show "job-search: 3 tasks, 1 needs review."

8. Visual Language

Status indicators (colored circles)

Priority indicators

Color philosophy

From Linear's UI redesign post:

Typography

For MC: Adopt the icon-based status indicator system. Use colored circles for status, priority bars, and avatar initials for assignee. This is the single biggest density improvement over text labels.

9. Interaction Patterns

Keyboard shortcuts (observed)

Drag and drop

Inline editing

Context menus

For MC: Keyboard shortcuts are a nice-to-have. The critical interaction patterns are: drag between columns (already have), click card to open detail, click property to change it inline.

10. What We Should Borrow

Must-have (directly applicable)

  1. Icon-based status indicators instead of text labels on cards
  2. Compact card anatomy: ID + status icon + title + priority icon + assignee avatar. One line where possible.
  3. Layout toggle in the header: board icon vs list icon
  4. Group-by-status list view with sticky headers for mobile/narrow screens
  5. Detail view with left/right split: content left, properties right
  6. Inline property editing on the detail view (click to change, no save button)
  7. Hidden/collapsed empty columns on the board
  8. "Create more" pattern for rapid task entry from the web UI

Should-have (worth implementing soon)

  1. "My Issues" as a first-class view (filter to assignee=Pete)
  2. Display options toggle for which properties show on cards
  3. Keyboard shortcut for new task (C key)

Skip for now

Phase 1: Desktop board polish (current scope)

Phase 2: Detail view upgrade

Phase 3: Mobile optimization

Phase 4: Power features