←back to thread

Local-first software (2019)

(www.inkandswitch.com)
863 points gasull | 1 comments | | HN request time: 0.205s | source
Show context
monkeyelite ◴[] No.44476235[source]
There is no reason for every application to have its own sync platform. I suspect this framing came out of mobile apps where there is no composability or modularity between programs.

If you really embrace "local first" just use the file system, and the user can choose from many solutions like git, box, etc.

I hate signing up for your sync just as much as any other SAAS, but it's even more opaque and likely to break.

replies(3): >>44476282 #>>44476361 #>>44478944 #
swsieber ◴[] No.44476361[source]
I agree that not every app needs it's own sync engine, but I disagree with your framing that the file system is the universal way to embrace local first. I have two reasons.

First is that yeah, local first, but I also want concurrency. If it's just local first, you're right, any old sync will do. But I want more than that. I want to not have to think (a la dropbox, being slick). I want my wife and I to be able to make separate edits on our phones when we're in a dead zone.

Second is that sync works a lot better when it has deep knowledge of the data structure and semantics. Git and box both have significant shortcomings, but both exacerbated by the concurrency desire.

replies(2): >>44476392 #>>44479831 #
monkeyelite ◴[] No.44476392[source]
But this problem isn't going to be solved by every app making its own sync system. Even if there is a magic library you can adopt that does pretty good, then everyone having their own completely independent hosting solution and sync schedule.

If files are insufficient, what data-structure would make modular sync possible for multiple applications in an OS?

And I’m not suggesting one doesn’t exist, I’m challenging to present a comprehensive solution, that probably involved operating systems.

> I want my wife and I to be able to make separate edits on our phones when we're in a dead zone.

Files do this.

replies(2): >>44476780 #>>44478403 #
1. swsieber ◴[] No.44476780[source]
Files come with certain restrictions, which don't matter for certain types of applications. But for others they do.

I think it boils down to provenance and concurrency. If we edit the same line a file, that's ba merge conflict when it really should be simple and something I shouldn't have to bother with. And when we do do the same line edit, I'd love to have provenance on that data.

Granted, those aren't local first thing exactly, but I think there will be apps that want all of that.