Ironically, because there’s no UDP in browsers, we can’t actually get proper p2p on the web. WebRTC through centralized coordination servers at best. Protocol Labs has all but given up on this use-case in favor of using some bootstrapped selection of remote helper nodes.
For me, trying to read the actual protocol or even tutorials that try to explain the protocol in a more approachable manner, didn’t help at all. It’s no understatement that ActivityPub itself is a mess.
But reading the Fedify documentation and describing “activities” with the library helped a lot more!
Even if you don’t plan on writing Js/Ts, I recommend the Fedify tutorial.