Hacker News new | ask | show | jobs
by diggan 448 days ago
> My main gripe with this is how do you charge users? They can just put the browser in offline mode and continue to use the app forever.

Let users pay a price to download the application, do some magic key activation (that could work offline too) like countless of professional software? Ableton, Spine2D and Cascadeur are some recent software I've purchased that works just like that.

> Syncing means that you probably have to have a complicated logic, especially if the data you are seeing can be modified by others.

Yeah, I think if you have an existing application/architecture/design and you try to shoehorn in local-first with sync in there, there will be some additional work. But if you design your data structures with that in mind, it gets a lot easier. So as always, way easier for greenfield projects than migrating existing ones.

> How do you solve merge conflicts?

Depends on your application. In many cases, CRDTs (just one example) can automatically resolve things based on however you set it up. And for when that doesn't work and you need manual solving, that gets easier too as you can easily see exactly where it doesn't merge, and it gets a lot easier to build the tooling you'd expose to the user to resolve it.