How's Linear so fast? A technical breakdown

#560 – June 07, 2026

mutations update locally first and sync in the background so there are no spinners

How's Linear so fast? A technical breakdown
23 minutes by Dennis Brotzky

Linear feels fast because of one core decision: the database lives in the browser, not the server. Mutations update locally first and sync in the background, so there are no spinners. The app ships less JavaScript by targeting modern browsers only, splits it into hundreds of small chunks, and precaches everything via a service worker before you even log in. Animations stay on the GPU and durations stay short, so nothing ever gets in the way.

Still writing tests manually? Meticulous AI is here.
sponsored by Meticulous

Most teams are forced to make the tradeoff between better coverage and more maintenance effort. But top engineering teams like Notion, Dropbox, Wealthsimple and LaunchDarkly have discovered a new testing paradigm. Built by ex-Palantir engineers, Meticulous creates and maintains E2E UI tests that covers every edge case of your web app without any developer effort - making it the only tool to improve both product quality and dev velocity.

Building a predictive text input in React
10 minutes by Matt Huggins

Building inline autocomplete in a browser requires a `contentEditable` div instead of a regular input, since standard inputs can't mix styled and plain text. A prediction span is inserted at the cursor showing the remaining keyword in gray, then replaced with real text when the user presses Tab or the right arrow key. React's declarative model fights this approach, so most of the work happens through direct DOM manipulation, with a ref flag to stop programmatic changes from triggering infinite update loops.

React server components in TanStack
12 minutes by Adam Rackis

React Server Components in TanStack Start run only on the server, so their code never reaches the browser. This reduces how much JavaScript gets sent to users, which helps most when component trees are large or pull in heavy libraries. TanStack's approach is explicit, using clear server functions to declare what renders as a server component. Like any tool, it works best in the right situation and won't benefit every project.

One core, six frameworks, zero runtime abstraction
5 minutes by Fabian Hiller

Formisch is a form library that works across six frameworks by swapping in each framework's native reactivity at build time rather than shipping its own layer on top. In Solid you get real signals, in Vue real shallowRefs, in Svelte real state cells. This means no adapter overhead, no bundle bloat, and full access to each framework's batching and scheduling. Bug fixes and improvements to the shared core benefit all six communities at once.

The best loading states are no loading states
9 minutes by Jenna Smith

Loading states like spinners and skeletons eat up a surprising amount of development time. Route transitions offer a better approach: load data in the background before navigation completes, so users always land on a finished page. Aggressive preloading on hover or scroll means most navigations feel instant. When something still loads slowly, treat it as a signal to fix the underlying performance problem rather than reaching for another skeleton.

webdev

javascript

And the most popular article from the last issue was:

newsletters