I really share your thought and sentiment on this matter.
I think an example of successful local-first is email and I'm still using email as my main messaging software. The fact that you can receive and send email seamlessly between different companies and organizations is just amazing. Sadly, however, now most of the people do not have their own domain and their emails are mostly managed by big corporations.
All the best for your Replica application, will keep track on the progress.
> I'm sick of having to decide between using cloud software and using local software
However, I want to point out there's an additional option that is becoming more and more accessible in recent years and that is self-hosting, either on a local server or a rented VPS. Most cloud based applications have several self hosted equivalents at various stages of development.
Check out this list:
https://github.com/awesome-selfhosted/awesome-selfhosted
Possibly your project falls into the self hosted category in some way?
Replica will work with native apps first. Data will be local to your devices. Servers are necessary for peer discovery, sync and delivery. But you can still make changes offline and sync later. Or ideally, sync directly between your devices over a local network.
Think about it like GitHub. You can use their website, but the data itself (in git) is cloned onto your local computer - and you can replicate it to other devices however you like. The model for replica will be similar: We’ll run an official website to use for replication, backup and discovery. But your data is, and always will be your own.
Upspin: https://upspin.io/
Perkeep:https://perkeep.org/
It's a Collaborative "Second Brain" or Zettelkasten, it's local by default but you can sync your brain with other people. Still in aplha. The local version is free and the collaborative one will cost per sync. So if you only want to use the local version then its ok.
Think about email. Your emails aren't on everyone's devices. They're just on your devices. If you go offline, you can still read and reply to emails. But the emails you send won't actually get sent until you go online again. Its like that; but instead of sending messages back and forth, you can edit things and the changes you make get synced while you're online.
I think the first product they're building on it is Loop: https://www.zdnet.com/article/microsoft-introduces-loop-a-ne...
So I'm building a software platform for local first applications on top of CRDTs. Its called Replica, though we haven't talked much about it yet. I want to be able to:
- Edit any data from one device in my house and have it just show up on any other device
- Share items with other people, and collaboratively edit with them
- Support lots of different applications - including multiple different applications live editing the same data. Like a universal plugin model.
Linux can't compete with cloud software like google docs because anyone running hosted platforms gets punished if the platform is successful. Ideally I'd love to get replica embedded in linux, as an alternative for desktop applications to use to store their state. Then users could open up the same app from different computers and have all their data there, and collaborative editing and things like that would just seamlessly work. I want to be able to open the same file in two different editors and have typing in one show up live in the other as I type.
I want to opensource the whole thing, but we'll probably go with some sort of open core model and charge for our official hosted version (which you want for backup and delivery). I want this project to be financially self sustaining - otherwise I don't think it'll survive. But still opensource enough that people can self host if they want to.