Keyboard-First Task Management: Building a Linear Alternative with React
How to build a keyboard-centric project management board inspired by Linear, with command palettes, virtualized task lists, and dark-mode-first styling.
Keyboard-First Task Management: Building a Linear Alternative with React
Developer tools should be navigable without a mouse. Apex Task Board is built entirely around keyboard shortcuts and command palettes.
1. Command Palette (Ctrl+K)
The command palette is the fastest way to navigate. It fuzzy-searches across tasks, views, and actions:
typescriptfunction CommandPalette({ tasks, onSelect }) { const [query, setQuery] = useState(''); const filtered = useMemo(() => tasks.filter(t => t.title.toLowerCase().includes(query.toLowerCase())).slice(0, 10), [query, tasks] ); return ( <div className="command-palette" onKeyDown={handleKeyNav}> <input value={query} onChange={e => setQuery(e.target.value)} placeholder="Search tasks..." autoFocus /> {filtered.map(task => <CommandItem key={task.id} task={task} onSelect={onSelect} />)} </div> ); }
2. Virtualized Task Lists
With thousands of tasks, rendering all DOM nodes kills performance. We use react-window to virtualize the list, only rendering visible rows.
3. Keyboard Navigation
Every action has a shortcut: N creates a task, J/K navigates up/down, Enter opens details, E edits inline. Zero mouse required.
Summary
Keyboard-first design with command palettes and virtualized rendering creates a task board that developers love because it matches their workflow speed.