As someone dabbling with such an app right now, there are several hurdles if you want to exclusively use self sovereign identity.
1. Local data gets lost, so you need to sync for backup. But when your device gets lost or when you need to access it from elsewhere, how would you login to the said backup service? The most intuitive option is still a username and a password.
2. It's hard to transfer data from one device to another. And to asynchronously share data with friends and family. Solutions like ipfs exist, but in practice they rely on many centralized services (eg: for pinning). And besides, securely sharing private data is not an option on any of them.
3. Lay people being able to safely handle cryptographic keys is an unrealistic assumption.
So IMHO, perfect 0-data is not going to happen. It used to work earlier (pre-internet) because we had only one device, didn't have a lot of media, and could carry floppy disks for the rare occasion.
What I think would make a difference is: browser apps being able to do TCP/UDP (with safe-guards) and sandboxed local disk-access. This allows web apps to do things like SSH, and login to the vast storage infrastructure that already exists - such as GitHub. Data remains fully under your control and becomes portable. Git IMHO is a better path to where Solid wants to go. Especially once SHA256 commit hashes land - to become your personal, consensus-less blockchain.
The internet also fundamentally changed how people perceive of their data being accessible. When I was trying to give advice to someone after their Chromebook bit the dust (from being dropped too many times), doing things like using a thumbdrive to maintain portable copies of the local data on the device... It was met with a can of worms of further questions starting with:
a) what's a thumbdrive?
and
b) what's local data?
Each answer resulted in even more questions. Why isn't it in the cloud? What do you mean I'd have to copy it again? I can run out of room?
I could understand needing to get across to some people that not all data ends up synced (eg, saved memes are not necessarily automatically backed up to Drive)... but reaching a point to where people could be completely unaware of USB storage media actually shook me to my core.
People now expect it all to just "be there" after they log in.
I lived through having to move data using flash drives or by emailing files to myself. Heck in some cases the data had no easy way to transfer so I had to pick what device was the most convenient to have the data on. During that time it was my dream to just have everything automatically in sync.
I very much do not want to have to go back to that crap. Having it all "be there" is exactly how I want things to be.
Ah yes. The cloud that we (society) have become so accustomed to. Keeping in mind, this definition often always refers to either Google's or Apple's storage plans.
I believe one of the reasons for phones nowadays that come with 64GB or less storage, is you can push this limitation with cloud backup.
If you're looking for secure sharing of private data on IPFS you should check out Peergos [0][1][2]. Disclaimer - I'm a co-founder. The model there is each user needs at least one Peergos instance storing their data, normally their home-server. We've designed it so that people should never have to see an encryption key, or cryptographic hash, nor know what pinning is. As far as apps go, we plan to build a sandbox and api in the browser for running untrusted apps served directly from Peergos which you can grant fine grained permissions to your data in Peergos. The sandbox here would be designed so an app couldn't even exfiltrate data via loading an external img tag.
A few years ago (~2017) I built an app that uses a hybrid backend. As a user you can choose if you want to use a WebDAV server of your own or simply the builtin AWS backend. That way, people who care about their data can use their own server (e.g. a Nextcloud) as a backend and everyone else doesn't have to bother.
Sadly the code quality is prototypical at best and while I still use the app multiple times per week, I never released it and have quite a few leanings which I want to implement (like rewriting the sync logic in a separate library, changing the server side data model to improve performance, completely reorganize the user interface and add more features to the app), but aren't coming to due to other priorities.
However, what I also learnt is that it is possible to build something like it, even if your use-case includes advanced topics like offline collaboration. My hope is that one day we will have a library that make these things for developers as easy as firebase and every app will have it out of the box.
The data (in solid for example) isn't local - it's just controlled by the user. The key point is that the user's data is decoupled from your service - it's not necessarily decentralised.
Backups are handled (by the user) - the user can purchase cloud storage through a provider (like https://inrupt.com/products/enterprise-solid-server/, though there are other free services - or you can host your own wherever you want). Users don't have to safely handle cryptographic keys or deal with device syncing.
For (1), why not have all your devices sync up when they are on your local wifi network? If your phone automatically backs up to your NAS, and syncs with your home desktop, your data should always be up to date and backed up in multiple places. Then if you really have to sync while not being at home, you could do something over ssh/using a vpn.
Very few people have a NAS. Even among the tech literate, there aren't that many people who use SSH or VPN. If this isn't transparent to the user, you'll see very marginal adoption.
Is that really true? Are there tech-literate folks that don't have a NAS and use VPNs? If so, count me surprised. How would you BitTorrent without a NAS configured with VPN?
What if I told you that the world is bigger than your subculture?
Why do you automatically assume that someone uses BitTorrent, for example? Your comment reminds me of the dark time in our past when people who used Visual Studio just assumed that everyone else used it, too.
I understand that there is a spectrum of tech-literate. Perhaps I'm on the "hacker" end of that spectrum. I've mentored my tech-literate friends on the other end of the spectrum, and got them comfortable enough to acquire a NAS and setup a VPN.
I have a Synology, and use their "DS File" iOS app to backup all of my photos. And scheduled backup jobs on desktops. Great peace of mind. I backup my NAS to Backblaze and to a local USB drive plugged into the NAS. I'm on my 2nd generation of Synology and am a very happy customer.
3. The crypo space is actually doing this fairly well: end users remember a 12-word seed phrase, and that can be used to recover the multiple private keys that make up a “wallet” (bad term since wallet already means something, but that’s what the hardware vendors went with).
Otherwise I’d say it’s clear you’re in the space and I agree with your assessment.
1. Local data gets lost, so you need to sync for backup. But when your device gets lost or when you need to access it from elsewhere, how would you login to the said backup service? The most intuitive option is still a username and a password.
2. It's hard to transfer data from one device to another. And to asynchronously share data with friends and family. Solutions like ipfs exist, but in practice they rely on many centralized services (eg: for pinning). And besides, securely sharing private data is not an option on any of them.
3. Lay people being able to safely handle cryptographic keys is an unrealistic assumption.
So IMHO, perfect 0-data is not going to happen. It used to work earlier (pre-internet) because we had only one device, didn't have a lot of media, and could carry floppy disks for the rare occasion.
What I think would make a difference is: browser apps being able to do TCP/UDP (with safe-guards) and sandboxed local disk-access. This allows web apps to do things like SSH, and login to the vast storage infrastructure that already exists - such as GitHub. Data remains fully under your control and becomes portable. Git IMHO is a better path to where Solid wants to go. Especially once SHA256 commit hashes land - to become your personal, consensus-less blockchain.