Happy Monday! ☀️

Welcome to the 65 new hungry minds who have joined us since last Monday!

If you aren't subscribed yet, join smart, curious, and hungry folks by subscribing here.

Linear updates issues in milliseconds while traditional CRUD apps take 300ms. This isn't magic—it's built from the ground up with the right foundation and refined through countless deliberate choices. The app inverts the traditional client-server model: instead of waiting on the network, the browser becomes the database.

The secret isn't a silver bullet. It's treating network latency as the enemy and eliminating it wherever possible. From aggressive code-splitting to local-first sync engines, every decision compounds. Let's walk through the techniques that make Linear feel instant.

The challenge: Making a client-side rendered app feel instant on first load while keeping all user data in sync across devices and maintaining offline capabilities.

Implementation highlights:

  1. Local-first IndexedDB. UI mutations apply instantly to in-memory state, then async queue to the server via WebSocket. Users never see spinners because the interface updates before the network completes.

  2. Aggressive code splitting and bundler evolution. Linear rewrote their build pipeline four times (Parcel → Rollup → Vite → Rolldown), dropping legacy browser support entirely. Result: 50% less code shipped, 59% faster time-to-first-paint on some views.

  3. Modulepreload for parallel chunk fetching. Before JavaScript runs, the browser fetches all chunks in parallel rather than serially. The entry script hits cache by the time it needs its imports, collapsing the waterfall into a single batch.

  4. Service worker precaching. ~1,200 hashed assets sit in cache after login. Subsequent navigation skips the network entirely, and the app remains functional offline with data syncing when connection returns.

  5. Per-package vendor chunks. Each npm dependency gets its own chunk with independent cache invalidation. Bumping one library doesn't invalidate the entire vendor bundle—a huge caching win over monolithic bundles.

Results and learnings:

  • Network elimination is the highest leverage. Cold-load timelines collapsed from sequential waterfalls to parallel batches. Even 21 MB of minified JavaScript feels instant when split right and preloaded aggressively.

  • Simplicity compounds. React, TypeScript, MobX, Postgres—no edge databases or RSCs. Client-side rendering with clean architecture beats complexity.

  • Offline-first thinking changes everything. IndexedDB + sync engine + service worker isn't overhead; it's the foundation. The browser becomes the source of truth.

Linear proves that perceived speed flows from architecture, not from framework choice or flashy tricks. When every interaction updates locally first, your app stops feeling like it's waiting on the internet—it feels like native software. And really, that's just good manners toward your users' time.

Want to reach 200,000+ engineers?

Let’s work together! Whether it’s your product, service, or event, we’d love to help you connect with this awesome community.

Brief: Thinking Machines released Inkling, a 975B-parameter open-weights Mixture-of-Experts model supporting text, images, and audio with up to 1M token context and controllable thinking efficiency.

Brief: MIT researchers developed GIFT, a system that teaches AI models to convert 2D designs into CAD code 5x more efficiently by learning from their own mistakes.

Brief: Kimi introduced K3, the world's first open 3T-class model with 2.8 trillion parameters, a 1-million-token context window, and native vision capabilities for coding, knowledge work, and reasoning tasks.

Brief: Ollama, serving 8.9 million developers, raised $88 million to expand its platform enabling developers to run open models locally without API costs or privacy concerns.

Brief: Claude Code v2.1.181+ runs Bun rewritten in Rust, achieving 10% faster startup on Linux with minimal user-facing changes.

This week’s tip:

Query planning and execution optimization with window functions - Use analytical window functions to eliminate N+1 queries and self-joins, processing aggregations in a single scan for complex reporting requirements.

Wen?

  • When implementing real-time dashboards requiring running totals, ranks, or percentiles

  • When optimizing complex financial calculations or time-series aggregations

  • When migrating from application-layer aggregation to database-side processing for performance

Your time is limited, don't waste it living someone else's life.
Colin R. Davis

That’s it for today! ☀️

Enjoyed this issue? Send it to your friends here to sign up, or share it on Twitter!

If you want to submit a section to the newsletter or tell us what you think about today’s issue, reply to this email or DM me on Twitter! 🐦

Thanks for spending part of your Monday morning with Hungry Minds.
See you in a week — Alex.

Icons by Icons8.

*I may earn a commission if you get a subscription through the links marked with “aff.” (at no extra cost to you).

Keep Reading