linear-local-first-architecture

Installation
SKILL.md

When to use this skill

  • You're building a productivity tool where perceived speed is critical to user experience
  • Users report the app "feels slow" despite reasonable network latency
  • You need to eliminate loading spinners and skeleton states from user workflows
  • You're architecting a local-first application with offline capabilities
  • You want to implement optimistic updates that feel instant
  • You're designing a keyboard-first interface for power users

Core principles

  1. The network is the bottleneck—eliminate it wherever possible. Every network request costs hundreds of milliseconds; the best optimization is to avoid the request entirely by reading from local state.

  2. Treat the browser as the database for each user. Store the full workspace in IndexedDB and hydrate into an in-memory observable graph; the UI reads from local state, not the server.

  3. Mutations apply locally first, sync asynchronously. Update the local observable immediately so the UI re-renders synchronously, then queue the transaction for background sync to the server.

  4. Render first, authenticate second. If local data exists, render it immediately and verify the session in the background; only redirect to login if the server rejects.

Installs
70
GitHub Stars
211
First Seen
Jun 6, 2026
linear-local-first-architecture — boraoztunc/skills