Description
I was talking to @blerner about this the other day, and after that, looked up a bit of what it would take.
It seems like WebRTC is mature enough (supported in most browsers for a while) to probably be able to support the types of patterns that a port of universe (https://docs.racket-lang.org/teachpack/2htdpuniverse.html) would need -- in particular, being able to send peer-to-peer messages, whether the peers are in the same window or remote across the network. e.g., if built upon this library: https://peerjs.com/ (as the core APIs are... complicated), the centralized server (CPO) would be responsible only for connecting clients, not relaying any data.
There probably would need to be a bit of thought put into the actual exposed API for identifying who you want to connect to (for privacy, usability, etc), but at the bare minimum, it seems possible. And, of course it may be worth revisiting the actual server / client API design rather than just replicating.
(WebRTC is, of course, intended for stuff like voice and video, but the API allows plain data messages too).