I can appreciate this kind of thinking as much as everyone else, but I think that the "fediverse" is too much of a distraction. Federation can be a great thing, but it's an adjunct to a solution, and not much of a large scale solution in and of itself.

What the web needs is new layers to make what your suggestions much more practical.

Creating a website was a nice idea back in 2003 when mostly geeks with skills were using the web. Today, most people don't want to put forth the effort of creating a website. Many geeks with skills that are still around today don't want to bother creating a website because few people will find it. If you make a website, at best only people who read websites will find it. A growing number of people today don't even know what a "website" is because they hardly live on the web proper. Free web hosting is generally bad news because the platform is far more likely to either shut down or provide zero support.

So back to the thing I said about new layers to the web...

If we're going to bring back websites, then we need to bring back the idea that sites will be hosted on many individual machines that aren't necessarily server infrastructure. With the bandwidth most ISPs and devices are capable of today, data isn't a limiting factor in terms of serving a standard website to even thousands of users. The web was meant to be closer to a peer-to-peer model, and it can be used peer-to-peer, but the layer just isn't there to make that model seamless. Most P2P protocols avoid fiddling with the actual network stack and do entirely their own thing; BitTorrent for the most part lives in their own client applications, as historically have many other P2P protocols. That was fine when geeks were using them, but this is insufficient for making the web itself P2P.

The closest implementation to what I am describing here is Yggdrasil:

https://yggdrasil-network.github.io/

Yggdrasil implements P2P mesh networks by behaving like a VPN, assigning an IPv6 address to peers based on public keys. There's no one network, so people are free to create their own networks, and the same address can be used between networks. Although it has some similarities with anonymity networks like Tor, it is not designed for anonymity, which I think is a good thing because Yggdrasil should focus specifically on the networking aspect. Although it's technically in alpha status, I've already been using it to network devices together in my home office. I even have it installed in my car's Android head unit so I can SSH into it and do Linuxy things with it.

The current issue I see with Yggdrasil is that it's not plug-n-play enough to become the de facto next generation layer of the web/internet. It still requires manually configuring a JSON file in order to join a network and so forth. Yggdrasil isn't difficult to install, but if the world wants to go with something like it as this next layer, we need to get it to a state where the user needs next to no knowledge to set it up.

With this hypothetical layer, groups of people can form their own networks and exchange addresses. This is perfect if you want to have an application similar to WhatsApp or Signal that is mostly private and scoped to groups of people, but allows users to cross into multiple groups.

In terms of websites, it's perfect because you get an IPv6 address that is publicly available to anyone on your network and with none of the hassle that's involved with getting a public IP address on the clearnet. It's all a matter of who is connected to the network.

If you want anonymity, this layer can still work through another layer like Tor, or even live entirely within something like I2P. A benefit to using I2P here is that its design makes DDoS attacks more difficult, at least in theory.

With such a layer, hosting sites can become much more trivial. For everyday people who are a little more technically savvy but don't want to be fussing with the command line, I picture simply downloading something like a Reddit clone that runs like any other app on Linux or MacOS and it runs with a neat little admin interface. Share the address (or the domain if a secondary DNS is used) and you're off to the races.