Linear is an issue tracker and project planning tool for software teams, known for feeling instant. Under the hood it runs TypeScript end to end, with its own sync engine keeping data on the client and a single Postgres database on Google Cloud.
Runs durable workflows, including the agentic workload system at production scale.
How they built it
Speed came first, so they built their own sync engine
From day one, Linear set speed as a core product value: data stored locally, no page reloads, and the app working offline, plus real-time sync and teammate presence for multiplayer.
To get there, the team built a proprietary sync framework over WebSockets designed for speed and offline support. CTO Tuomas Artman has given talks on how the engine works and how it had to change as Linear grew.
Linear's engineers work in TypeScript everywhere, from database models to GraphQL resolvers and UI components. The front end is React with MobX and styled-components; the back end is Node with Postgres, Redis and Temporal.
The same GraphQL layer powers the public API and SDK, so customers integrate with the API the team uses itself.
In 2024 Linear added a European region. Its infrastructure had been managed by hand in Google Cloud's us-east1, so the first step was moving it to Terraform, which made spinning up a second region much easier.
Instead of sharding Postgres, they replicated the entire deployment per region, so developers still write code against a single database instance. A small authentication service, a Cloudflare Worker that routes each request to the right region, and Google Cloud Pub/Sub for background tasks across regions tie it together.
In January 2024 a database migration deleted data and Linear restored the database from a backup taken hours earlier. The post-mortem describes a database cache in front of Postgres and sync cursors cached in Redis, both of which made recovery harder.
The team responded with CI warnings for dangerous migrations, tighter access to production databases and dry runs in staging.