- Signal
- XMPP
- Matrix
In that order. I self-host both XMPP and Matrix, and I wouldn't want to stop using matrix. Spaces, arbitrary amounts of self-chats, and so on are great. I use matrix every day.
But for chatting... It sooner or later fails you. It's slow. Notifications break. Messages are shown as sent, but somehow do not appear in the recipient's devices until TWO WEEKS LATER (yeah IDK, happened twice already, in different chats and directions. Best part is, I'm not even federated!). Encryption is great IF YOU KNOW SOME CRYPTOGRAPHY BASICS, and utterly confusing otherwise.
XMPP just works. Especially the calls, holy shit, I had to fight Matrix for so long to make voice and video calls work, and xmpp just... Works. Notifications are way more reliable (as in, have been absolutely perfect). I really like monocles as a chat app on Android. (The downside is: can't decrypt old messages on new devices, and desktop clients are ugly.)
So why Signal above XMPP?
Because it's not your fault should something ever break in a vital service. Also the encryption and privacy afforded by it a great.