Reverse engineering of Linear's sync engine

92 flashblaze 10 5/29/2025, 4:29:30 AM github.com ↗

Comments (10)

mappu · 4h ago
If you're using AI to write all those em-dashes, please add a disclaimer.

For humans i would say a shorter summary is Linear.app syncs a client IndexedDB with the server using naive last-write-wins, no conflict detection, no OT, no CRDT. There's a global sync ID that the server is in control of. Most of the article describes minutae of the json schema.

evaneykelen · 2h ago
On macOS, typing two consecutive hyphens automatically gets converted to an em-dash in many applications: no AI involved necessarily.
notpushkin · 1h ago
I’ve built a custom layout for that (and a bunch of other symbols I frequently use). ⌥ hyphen for en-dash, ⌥ ⇧ hyphen for em-dash (and ⌥ M is for minus): https://typo.ale.sh/

(The idea isn’t new, of course: the default macOS layout’s 3rd layer is absolutely bonkers. I think Ilya Birman was the first: https://ilyabirman.net/typography-layout/)

pottertheotter · 4h ago
Never thought someone would be anti em-dashes.
dheatov · 1h ago
I am anti-reading content generated by probabilistic model of human language, especially if published without much editing. Em-dash is a strong indicator of such.
bitpush · 2h ago
What's the closest opensource library that implements this sync (or similar) scheme? ElectricSQL? ZeroSync? Firebase? Something else?
nologic98 · 6h ago
Is this applicable for a consumer mobile app to use for a local-first architecture (either conceptually or literally)?
isaachinman · 6h ago
You could achieve something almost identical with Replicache + (Mobx or Orama). Only mentioning Mobx because it's what Linear uses. That level of the implementation is interchangeable.
tonetheman · 6h ago
Whatever a linear sync engine actually is... sigh. Needs more information.
ralfhn · 2h ago
Linear.app is a product management tool like Jira. The article describes how they sync their data to their backend