today i am proposing the same thing but for the server side.
at the higher level for most content, of course, i strongly favor IPFS — but sometimes, one actually needs centralized, responsive, cheap, continuously or on-demand running server programs, for many uses.
i propose a nice way to decentralize and standardize all of this and simplify the stack. a piece of relatively simple server software (the "generic server") with a standard public-facing API could be deployed on any server machine, and make that server sell its bandwidth and computation resources in exchange for cryptocurrency, automatically. people or other programs could connect to it, upload a small WASM (or meta-wasm) program, and pay to have it run and be able to use various amounts of resources.
then, if the server for example runs a multiplayer video game session, ports could be opened for client software to connect to. the coordination of what is hosted where could be maintained on the IPFS as decentralized knowledge, as would be the network of trust of which server machines are known to be reliable. especially, for information that one might not want leaked, one could cultivate a small set of trusted server providers — just as they do now by trusting just google or just amazon, except this would be a more general and automatably manipulable framework.
people could buy some server resource in bulk to share with their friends if some can't be bothered to buy crypto, large companies could deploy this generic server on many computers of their datacenter, people could run generic servers on their home computers to make money from unused resources, and anyone would be able to compete without setting up a significant piece of cloud infrastructure and then spending money on marketing to get known and trusted. larger distributed applications needing to allocate and deallocate servers dynamically based on demand and geographical location would have an entire competitive market to use, rather than having to settle with one of the large providers; and their individual server units could interoperate with each other even across providers.
server-side WASMs could access various APIs to communicate with each other be it on the same server machine or with other server machines; they could access APIs to use storage, to use GPU computer, to publish IPFS data, etc.