Live data from Hacker News

Why haven't local-first apps become popular?

marcobambini.substack.com

491–494 of 494 posts

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

#491
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…

Yes because its a responsability and generally those are costly. If they don't have real upsides you don't want them. So if you can get the same software utility with none of the management responsability you are very much willing to pay a bit more.

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

#492

> 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…

> Also remember it turns your data model into (...) I don't this is true at all. A CRDT is not your data model. It is the data structure you use to track and update state. Your data model is a realization of the CRDT at a specific point in time. This means a CRDT instance is owned by a repository/service dedicated to syncing your state, and whenever you want to access anything you query that repository/service to out…

A CRDT requires its own data model that becomes, in a sense, the "main" data model. Because its design and constraints effectively become the design and constraints and requirements on the downstream data snapshot.

CRDT's generally require you to track a lot more stuff in your snapshot model than you would otherwise, in order to create messages that contain enough information to be applied and resolved.

E.g. what was previously an ordered list of items without ID's may now need to become a chain of items each with their own ID, so you can record an insert between two other items rather then just update the list object directly.

So yes, the CRDT is effectively your data model.

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

#494

I feel like the problem is simply... it should just be a file. And if it were a file, you could sync it with dropbox or OneDrive. And if you can do that, they can't make money selling their own cloud service for their local-first app. More specifically, if you can edit different parts of a same document on different devices, then the document should be split across multiple files that can be synced independently, e.g…

> And if it were a file, you could sync it with dropbox or OneDrive. How do these services resolve conflicts?

They don't. Because what you see in the app is what you loaded from the file. When you save the document you'll know which snapshot you were editing.
Post reply on HN