if you are building a chat ecosystem here some basic deisgn rules you need to follow
1. no jank. the server needs to do all of the heavy lifting so that client applications can work smoothly. that means gnarly SQL queries and image/video transcoding for wide device support and to properly support a reduce motion setting for GIFs. you are not allowed to have a "dumb" server that simply glues clients together
1a. this means if you're doing e2e encryption it's gotta be well-designed from the start
@iliana i used xmpp for a while in uni as a student org i was in used it as their main chat. i was able to consistently send and receive messages on EDGE when even websites wouldn't load and always found that pretty impressive.
of course xmpp has a lot of issues but since then i wonder why all chat apps cant do this