Live data from Hacker News

How's Linear so fast? A technical breakdown

performance.dev

221–230 of 250 posts

Re: How's Linear so fast? A technical breakdown

#221

Earlier quoted context omitted.

> It’s really unfortunate that it is built in an apartheid state. Linear is based in San Francisco. And has offices in New York and Finland. Which one of these is an apartheid state?

You are right. I was confusing it with another company LinearB. I should have double checked.

LinearB is not from "apartheid state" either.

Re: How's Linear so fast? A technical breakdown

#223
post #43
post #22

Earlier quoted context omitted.

Indeed. I have to say, I hate this. Suppose you are in a meeting, you update something and you see the result, but the rest of the team does not. Ok, a couple of hundred ms does not play into this but if the update does not make it through? And yes, it happens.

Changes go through and synced to everyone on your team in almost realtime. If there's a conflict on the server and your change cannot be applied (almost never happens), your change is rolled back on your client, again, almost in realtime. If servers cannot be reached, we will show you a syncing badge within 4 seconds to tell you that you have made changes that haven't been sent to others yet. Strange that we can be s…

> If there's a conflict on the server and your change cannot be applied, your change is rolled back on your client

Do you lose your data then? Or are you thrown back into the form after it closed?

Re: How's Linear so fast? A technical breakdown

#224

I would always hear about how Linear was fast, but after actually working daily with it, I’ve lost enthusiasm. Search is quite slow, the UI is often clunky (looks good though), “Pulse” is a torrent of noise even at small scale, and I have trouble finding things I need and resort to adding everything to favorites. Early days’ Trello was the best project tracking experience by far.

I've used it for a couple of years now and honestly the hype around it is really unjustified. It does the job but it's nothing special. I could go back to Jira and see no change in productivity after a brief re-orientation period

I'm sorry but Linear is objectively better than Jira, and it's not even close.

Re: How's Linear so fast? A technical breakdown

#226

We use Linear at work. I’m definitely in the minority, but I really struggle with the UX. I also wouldn’t call it fast. Sure the page technically loads reasonably quickly, but half the time I see numbers updating on the page with no visual indicator that data loading is still happening.

I'm also in the same boat, I struggle with the UX and get lost frequently.

I would still say that it's the only SPA I've ever experienced which I'd call "acceptable" and that says a lot on what you need to consider when picking a new stack.

Re: How's Linear so fast? A technical breakdown

#227

Hang on... What if this happens? 1. User makes a mutation 2. UI updates instantly 3. User closes the app before sync happens 4. User comes back and is surprised to see that their mutation did not actually happen The loading / error / success states in a UI serve a purpose.

Presumably you could trigger one of those onbeforeunload confirmation dialogs in that case.

I assume you would also have some sort of icon that indicates all of the changes you made have been synced (or the opposite, an icon for when they haven't yet).

Though of course, it doesn't help if the user outright kills the app or pulls the plug or whatever. But I think in that case they should expect to lose some data?

Re: How's Linear so fast? A technical breakdown

#229

Earlier quoted context omitted.

You are right. I was confusing it with another company LinearB. I should have double checked.

LinearB is not from "apartheid state" either.

Offices in Tel Aviv including founder from there.

Re: How's Linear so fast? A technical breakdown

#230

I worry that optimistic updates is going to become trendy and applied to more software, but without any plan for the "sad path" - failed to sync, sync conflict, etc. Get ready for a whole new era of race conditions and frustration!

Yeah, it's a big part of the tradeoff for this kind of architecture. In Zero, this is a first-class concern via the ConnectionStatus API:

https://zero.rocicorp.dev/docs/connection

Errors and connection are handled in a centralized place so that they automatically get applied to all paths.

Errors immediately disconnect the app and trigger UI. Writes are no longer accepted. After 1 minute of of failed connection attempts, same happens.

This formalizes and enforces the common pattern in popular sync-based apps of detecting disconnects fairly aggressively and warning the user.

Post reply on HN