Live data from Hacker News

Why haven't local-first apps become popular?

marcobambini.substack.com

391–400 of 494 posts

Re: Why haven't local-first apps become popular?

#391

Earlier quoted context omitted.

Almost every time I see CRDTs mentioned it’s used as a magic device that makes conflicts disappear. The details, of course, are not mentioned. Technically an algorithm that lets the last writer win is a CRDT because there is no conflict. Making a true system that automatically merges data while respecting user intent and expectations can be an extremely hard problem for anything complex like text. Another problem is…

I’ve never really thought about this - how does Outlook handle this? Has anyone received a “sorry, that room you reserved actually wasn’t available; talk to this other dude who reserved it too” message after reserving a meeting room? Or does it just double book the room? Or is there a global lock on any transaction affecting a meeting room, so only one goes through? (Feels like it doesn’t scale)

> Or is there a global lock on any transaction affecting a meeting room, so only one goes through? (Feels like it doesn’t scale)

Why wouldn't it scale? How many meetings are booked per second in your organization???

Re: Why haven't local-first apps become popular?

#392
post #360

Earlier quoted context omitted.

You are making all these theoretical points... do you doubt that people are demonstrably lazy and willing to give up their privacy and control for free or cheap or convenient stuff? I don't see how this is even a contentious point to make. You're bringing up all these theoretical counterpoints that either obviously don't apply, or only apply very partially. There are many local only, FOSS options available for every…

Right, I guess am focusing more on your using the 'economics' as proof that it is a people problem, because I see it used that way all the time without regard to structures and human elements. Basically people use 'but the market is obviously working so it must just be the way it is'. They see it as the result of a theoretical market structure in which people make purely rational decisions in their best interest on a…

Either people are broadly ok with being screwed (my personal experience suggests this) or there is a grand conspiracy to prevent anyone who is not screwing their customers from competing in the market.

Maybe it is the latter, who knows. But what I do know is that the non-screwing options exist, but are often less popular and more expensive (either in price, time, or effort).

And this annoys me to no end. Because _I_ don't want to be screwed. But whether I get screwed or not increasingly depends on how much those around me are willing to get screwed or not.

Re: Why haven't local-first apps become popular?

#393

Earlier quoted context omitted.

We're living in the world of Dubai chocolate and labubu so this tells you everything you need to know about consumer behavior.

Fads and trends have always existed. Literally as long as we've had culture. What point are you trying to make?

But before it wasn't as easy to create them every few days.

Re: Why haven't local-first apps become popular?

#394
post #373

Earlier quoted context omitted.

> Technically an algorithm that lets the last writer win is a CRDT because there is no conflict. Your comment shows some ignorance and a complete misunderstanding of the problem domain. The whole point of CRDTs is that the set o operations supported is designed to ensure that conflict handling is consistent and deterministic across nodes,and the state of all nodes involved automatically converge to the same state. La…

I think the parent was complaining about mentions of CRDTs which don’t acknowledge that the problem domain CRDTs work in is very low level, and don’t mention how much additional effort is needed to make merging work in a way that’s useful for users. This article is a perfect example: it says syncing is a challenge for local-first apps, logical clocks and CRDTs are the solution, and then just ends. It ignores the elep…

There is definitely no general solution but for some domains there may be acceptable solutions.

Git is a good example though as we can definitely write merge algorithms that get good results in many more cases than git's default but with something like code it's preferable to let the human user decide what is the correct merge solution except trivial cases. Still, a language aware merge algorithm could do a lot better than git in both automatically merging more cases and refusing to merge nonsensical combinations of commits that don't touch the same lines.

Re: Why haven't local-first apps become popular?

#395
I think the biggest issue is that if you are putting that effort into syncing, its far nicer for the end user if you manage it for them.

If your using the "local" shared storage, then you're on the hook for any failure or setup, so there is a huge amount of debug and reputational damage in store for not very much gain.

If you are supporting multi device makers, and a normal audience, (ie people who don't know what CRDTs are) then you doing the hard work is far easier.

And thats before we get into ACLs for sharing.

Re: Why haven't local-first apps become popular?

#396

> The Solution: CRDTs. The right approach is CRDTs (Conflict-Free Replicated Data Types)... This means you can apply messages in any order, even multiple times, and every device will still converge to the same state. This is very much "draw the rest of the owl". Creating a CRDT model for your data that matches intuitive user expectations and obeys consistent business logic is... not for the faint of heart. Also remem…

Yeah I must say, this one (crdt) has been an impossible one to solve for me in practical terms. Every single time we end up with something like this: dataflow has 3 modes/directions: downstream only, upstream only and bi-directional. The majority of systems ends up needing bi-directionality (unless dealing with sensors/iot data) at some point, which means you are forced to deal with conflicts. Which means you end up having to compromise and the simplest compromise for 95% of applications is to say "last one wins", which works near perfect in the real world and it is simpler to maintain and debug. The remaining 5% has a hard constraint where you can either go down an academic rabbit hole with crdt's and come out the other end with some grey hairs, or, you still use your normal data flows but have multistep commits (not in a database sense, but a workflow/saga sense), so you have some supervising object that makes sure both sides agree after x amount of time or revert (think about banks, semi-realtime & distributed, but forced to be consistent).

And for the younger devs: please consider if you need these kinds of sync systems at all (distributed & offline modes), sometimes a simple store-forward of events and/or cache is all you need. If you have some leverage, try to advocate that your application has a hard requirement on an internet connection as often it is cheaper to install fibre redundancies than dealing with the side effects of corrupted or lost data. Might save you from early grey hairs.

ps: the above is written with business/LoB applications in mind, with some offline mobile/desktop apps in the mix, not things like control systems for factories or real time medical equipment.

Re: Why haven't local-first apps become popular?

#397
post #23

I believe the lack of popularity is more of an economics problem. There are established business models for SaaS apps or freemium with ads. But, the business model for local-first apps is not as lucrative. Those who like the local-first model value features like: data-sovereignty, end-to-end encryption, offline usage, etc. These properties make existing business models hard-to-impossible to apply. My current thinking…

I'm not really sure about this because far too often I see ads for various services/courses/etc that I want to buy, but I don't end up buying because it's a subscription and I just don't have the bandwidth currently to spend time on the thing. I want to buy it and keep it on my shelf until I find the time to get to it, like a book. And the price they give me from clicking the ad is a limited-time discount so then I'm…

Every time I looked at customer spending graphs at my previous jobs, I realized how my habits have nothing in common with an average consumer. We’re extreme minority in most of the cases.

Re: Why haven't local-first apps become popular?

#398
post #234

They used to be really popular, back in the ancient times when I was young and full of excitement for all things compute, almost all software was local-first, and.. only :) But since the entire world economy has turned to purely optimizing for control and profit, there's just no good reason to not screw people over as much and as often as possible, what'll they do ? Switch to someone who won't ? And who would that be…

> But since the entire world economy has turned to purely optimizing for control and profit, there's just no good reason to not screw people over as much and as often as possible, what'll they do ? I worked on a somewhat well-known (at the time) product that used on-site hosting. One of our biggest customer complaints was that we didn’t have a cloud hosted option. Many companies didn’t want to self-host. They’d happi…

That's a different situation than with offline first software though. With on-prem hosted solutions you'll have someone whose job it is to maintain that hosting and of course they'll want to push that work off to some service provider.

Re: Why haven't local-first apps become popular?

#399

Earlier quoted context omitted.

> But since the entire world economy has turned to purely optimizing for control and profit, there's just no good reason to not screw people over as much and as often as possible, what'll they do ? I worked on a somewhat well-known (at the time) product that used on-site hosting. One of our biggest customer complaints was that we didn’t have a cloud hosted option. Many companies didn’t want to self-host. They’d happi…

I can't imagine wanting to self-host something like Jira, GitHub, or some wiki product unless there's a very big financial cost difference that more than offsets my time and hardware investment. Otherwise it seems like I'm just spending time and effort achieving the exact same result.

That's short-term thinking. By making your business dependent on cloud solutions you are agreeing to future disruptions from forced changes and price increases that you can't foresee and won't be able to do much about when you learn about them.

Re: Why haven't local-first apps become popular?

#400
Local-first apps haven't become popular because users want shareable links, cross-device sync and maybe security.

For cross-device sync, you need a server. Either you use iCloud (limiting yourself to Apple platforms), host one (which encourages subscriptions and defeats the point of local-first) or ask users to self-host (which is difficult and error-prone).

Shareable links also need a server. You can't use iCloud for those, and if you're asking users to self-host, you now need to ensure their server is exposed publicly and has a domain. This adds yet another complication to an already complicated process, not to mention the security implications.

Security (where some users are restricted from seeing some of the data and performing some of the actions) requires much more "smarts" in the server, and makes local sync infinitely more complicated.

For local-first apps to be viable, we need a lot more primitives first. Apple provides some, but not nearly enough, and only for their own platforms. Nobody else even bothers.

Post reply on HN