I really would love to see decentralized apps, but I don't see how to get around the "back end storage" problem. If you have a ton of data (e.g., video) how and where does this get stored in a decentralized system? It seems impossible to compete with the fast and reliable infrastructure of the big folks (e.g. Amazon, Google, MS, ...).

There are plenty of options for long term storage of large assets in a decentralised way. Also, decentralised does not have to mean that you don't use traditional cloud providers.

What is missing is a really polished way to do decentralized apps, so that you don't have to think about the decentralized aspect all the time, but just use it because it is the best option. But it is coming.

Full disclosure: hacking on something to make writing decentralized apps easier: https://github.com/cloudpeers/tlfs

> so that you don't have to think about the decentralized aspect all the time

Depending how strict you want to be about this, torrents and Secure Scuttlebutt are pretty good in this respect. I especially love Secure Scuttlebutt because it simply makes the client the store of which messages it's seen which also means there is no authoritative view of the whole network but that's by design.

But probably the even better example here is email. It's the OG federated protocol and nobody thinks of it that way. Probably because casual users have consolidated around a handful of convenient clients (gmail, hotmail, whatever) and not thought too hard about how emails get exchanged from one corporate mail server to another.

Yes, there is a lot of awesome stuff that just works. SSB, the entire DAT/hypercore community, tools like syncthing that just do one thing well.

I like the SSB approach of just embracing subjectivity. I was quite amazed when discovering all this at dtn.is (Before I only knew the IPFS community).

But I feel there is still something missing for very wide spread adoption.

What we are trying to do with TLFS is to combine

- a CRDT with strict schema ( Adapted from https://arxiv.org/abs/1603.01529 )

- a built in way to do schema evolution ( Adapted from https://www.inkandswitch.com/cambria/ )

- local first / p2p deployment and operation even for native apps, based on https://github.com/libp2p/rust-libp2p , faciliated by https://github.com/cloudpeers/x

We're not nearly there yet, but ideally it should be so easy to write small collaborative apps that it is a good option even if you don't care about the idealistic motivations for decentralized apps.