Live data from Hacker News

Linear sent me down a local-first rabbit hole

bytemash.net

151–160 of 228 posts

Re: Linear sent me down a local-first rabbit hole

#151

Earlier quoted context omitted.

Reminds me of Meteor back in the day.

Whatever happened to meteor? They made it sound so great. What I didn't like was the tight coupling to mongodb.

For me it was the lack of confirmation with the backend. When it was the next big thing, it sent changes to the backend without waiting for a response. This made the interface crazy fast but I just couldn't take the risk of the FE being out-of-sync with the backend. I hope they grew out of that model but I never took it serious for that one reason.

Re: Linear sent me down a local-first rabbit hole

#152
post #115

Earlier quoted context omitted.

Like they said, for a small elite. If you don't see yourself as such, adjust your view.

what is your ping to fly.io right now?

90ms for me. My fiber connection is excellent and there is no jitter--fly.io's nearest POP is just far away. You mentioned game streaming so I'll mention that GeForce Now's nearest data center is 30ms away (which is actually fine). Who is getting 6ms RTT to a data center from their house, even in the USA?

More relevantly... who wants to architect a web app to have tight latency requirements like this, when you could simply not do that? GeForce Now does it because there's no other way. As a web developer you have options.

Re: Linear sent me down a local-first rabbit hole

#153
post #78

Earlier quoted context omitted.

Unless you are running some really complicated globally distributed backend your roundtrip will always be higher than 80ms for all users outside your immediate geographical area. And the techniques to "fix" this usually only mitigate the problem in read-scenarios. The techniques Linear uses are not so much about backend performance and can be applicable for any client-server setup really. Not a JS/web specific proble…

> Unless you are running some really complicated globally distributed backend your roundtrip will always be higher than 80ms for all users outside your immediate geographical area. Many of us don't have to worry about this. My entire country is within 25ms RTT of an in-country server. I can include a dozen more countries within an 80ms RTT. Lots of businesses focus just on their country and that's profitable enough,…

If you put your server e.g. in Czechia you can provide ~20ms latency for the whole of Europe :)

Re: Linear sent me down a local-first rabbit hole

#154
post #75
post #72

Earlier quoted context omitted.

Back in 2018 I worked for a client that required we used Jira. It was so slow that the project manager set everything up in Excel during our planning meetings. After the meeting she would manually transfer it to Jira. She spent most of her time doing this. Each click in the interface took multiple seconds to respond, so it was impossible to get into a flow.

Hm. While I'm not even remotely excited by Jira (or any other PM software), I've never noticed it being that bad. Annoying? Absolutely! But not that painfully slow. Were some extras installed? Or is this one of those tools that needs a highly performant network?

It is faster than it was back then - I've been using it for 10+ years. Hating every moment of it. But it is definitely better than it was.

Re: Linear sent me down a local-first rabbit hole

#155
post #23

ElectricSQL and TanStack DB are great, but I wonder why they focus so much on local first for the web over other platforms, as in, I see mobile being the primary local first use case since you may not always have internet. In contrast, typically if you're using a web browser to any capacity, you'll have internet. Also the former technologies are local first in theory but without conflict resolution they can break dow…

Because building local first with web technologies is like infinity harder than building local first with native app toolkits. Native app is installed and available offline by default . Website needs a bunch of weird shenanigans to use AppManifest or ServiceWorker which is more like a bunch of parts you can maybe use to build available offline. Native apps can just… make files, read and write from files with whatever…

Sure they're harder to build but my question is mainly why build them (for web in particular)? I don't see the benefits for a web app where I'll usually be online versus a mobile app where I may frequently have internet shortages when out and about.

I don't think Apple's solution syncs seamlessly, I needed to use CRDTs for that, that's still an unsolved problem for both mobile and web.

Re: Linear sent me down a local-first rabbit hole

#156

Earlier quoted context omitted.

Whatever happened to meteor? They made it sound so great. What I didn't like was the tight coupling to mongodb.

For me it was the lack of confirmation with the backend. When it was the next big thing, it sent changes to the backend without waiting for a response. This made the interface crazy fast but I just couldn't take the risk of the FE being out-of-sync with the backend. I hope they grew out of that model but I never took it serious for that one reason.

Yeah I built my first startup on Meteor, and the prototype for my second one, but there was so many weird state bugs after it got more complicated that we had to eventually switch back to normal patterns to scale it.

Re: Linear sent me down a local-first rabbit hole

#157

Earlier quoted context omitted.

what is your ping to fly.io right now?

90ms for me. My fiber connection is excellent and there is no jitter--fly.io's nearest POP is just far away. You mentioned game streaming so I'll mention that GeForce Now's nearest data center is 30ms away (which is actually fine). Who is getting 6ms RTT to a data center from their house, even in the USA? More relevantly... who wants to architect a web app to have tight latency requirements like this, when you could…

[deleted]

Re: Linear sent me down a local-first rabbit hole

#158

Earlier quoted context omitted.

If you could simply drop in a library to any of your existing SSR apps that: - is 50kb (gzipped) - requires no further changes required from you (either now or in the future) - enables offline/low bandwidth use of your app with automatic state syncing and zero UX degradation would you do it? The problem I see with SSR evangelism is that it assumes that compromising that one use case (offline/low bandwidth use of the…

> - enables offline/low bandwidth use of your app with automatic state syncing and zero UX degradation > would you do it? No, because the "automatic state syncing and zero UX degradation" is a "draw the rest of the owl" exercise wherein the specific implementation details are omitted. Everything is domain specific when it comes to sync-based latency hiding techniques. SSR is domain agnostic. > low bandwidth requireme…

> "automatic state syncing and zero UX degradation" is a "draw the rest of the owl" exercise

That's an assumption you're making, but that doesn't necessarily have to be true. I offered you what amounts to a magic button (drop this script in, done), not a full implementation exercise.

If it really were just a matter of dropping a 50kb script in (nothing else) would you do it? Where's the size cutoff between "no" and "yes" for you?

> Everything is domain specific when it comes to sync-based latency hiding techniques.

Yes and no. To actually add it to your app right now would most likely require domain-specific techniques. But that doesn't imply that a more general technique won't appear in the future, or that an existing technique can't be sufficiently generalized.

> the extra 50kb gzipped is starting to feel kind of heavy

Yeah - but we can reasonably assume it's a one-and-done cached asset that effectively only has to be downloaded once for your app.

Re: Linear sent me down a local-first rabbit hole

#159
post #71

> For the uninitiated, Linear is a project management tool that feels impossibly fast. Click an issue, it opens instantly. Update a status and watch in a second browser, it updates almost as fast as the source. No loading states, no page refreshes - just instant, interactions. How garbage the web has become for a low-latency click action being qualified as "impossibly fast". This is ridiculous.

Web applications have become too big and heavy. Corps want to control everything. A simple example would be a simple note taking app which apparently also has to sync throughout devices. They are going to store every note you take on their servers, who knows if they really delete your deleted notes. They'll also track how often you visited your notes for whatever reasons. Wouldn't surprise me if the app also required…

> a simple note taking app which apparently also has to sync throughout devices

that is the entire point of the app, surely! whether or not the actual implementation is bad, syncing across devices is what users want in a note taking app for the most part.

Re: Linear sent me down a local-first rabbit hole

#160

> For the uninitiated, Linear is a project management tool that feels impossibly fast. Click an issue, it opens instantly. Update a status and watch in a second browser, it updates almost as fast as the source. No loading states, no page refreshes - just instant, interactions. How garbage the web has become for a low-latency click action being qualified as "impossibly fast". This is ridiculous.

Hacker News comment sections are the only part of the internet that still feel "impossibly fast" to me. Even on Android, thousands of comments can scroll as fast as the OS permits, and the DOM is so simple that I've reopened day-old tabs to discover the page is still loaded. Even projects like Mastodon and Lemmy, which aren't beholden to modern web standards, have shifted to significant client-side scripting that lac…

The modern webbroswer trick of "you haven't looked at this tab in an hour, so we killed/unloaded it" is infuriating.
Post reply on HN