When writing a README for Chatterbox (my attempt at a new federated chat protocol), I wanted to explain all of my design choices. One that quickly gave me trouble was the API’s format: it uses Protobuf over a single WebSocket connection, instead of a REST API. Why did I do it this way? The obvious answer is that it’s just interesting to me. I have a lot of trouble choosing boring technology, because I have to keep the project interesting enough for me to stick to it. I reimplemented somet...