Messenger Comparison Table

This is not intended to be an extremely comprehensive list, but enough to get a grasp on the situation.

The only client for now that we recommend is Conversations, a top notch XMPP client, fully supports the OMEMO XEP, is easy on the battery, and doesn't force you into a walled garden. It is not the easiest thing getting your friends and family to switch apps, so at the very least any apps with end-to-end encryption (E2EE) support should always be preferred over apps without.
Remember to always verify your partner's E2EE keys when possible, as it is arguably useless otherwise.

For a much larger list of messengers, albeit in German, see this overview and their "Why Not?" list.

Last updated: 2022/12/17

NameFOSS ClientNon-Free DependenciesFOSS ServerProtocolFederatedDecentralizedEncryptionE2EE by DefaultDesktop ClientFile SharingVoice CallingVideo CallingMulti-Device SupportOffline MessagingPhone Number
ConversationsGPLv3F-Droid: No, Play: YesYes: prosody/ejabberdXMPPYesYesTLS + OMEMO E2EEIn private chatsYesYesYesYesYesYesNot needed
ElementApacheF-Droid: No, Play: YesYes: synapseMatrixYesYesTLS + Olm/Megolm E2EEIn private chatsYesYesYesYesYesYesNot needed
SignalGPLv3Play/Website: Yes, GMSCode over wallCustomNoNoTLS + Signal E2EEAlwaysYesYesYesYesWith PhoneYesAs identifier
SimpleXAGPLv3NoYes: SimpleXMQ SMPCustomYesNoCustom E2EEAlwaysYesYesYesYesWIPMaybeNot needed
Jami/RingGPLv3F-Droid: No, Play: YesYes: opendhtCustomN/AYesTLS + Custom E2EEAlwaysYesYesYesYesYesNoNot needed
SessionGPLv3F-Droid: No, Play: YesUnclearCustomN/AYesCustom E2EEIn private chatsYesYesWIPWIPYesYesNot needed
Delta ChatGPLv3F-Droid: No, Play: YesN/AE-MailYesYesTLS + OpenPGP E2EETo contacts with AutoCryptYesYesNoNoYesYesNot needed
BriarGPLv3NoN/ACustomN/AYesCustom E2EEAlwaysWIPImages OnlyNoNoNoNoNot needed
Silence (deprecated)GPLv3NoN/ASMSYesYesSignal E2EETo contacts with SilenceNoImages OnlyNoNoN/AMaybeAs identifier
WireGPLv3F-Droid: No, Play: YesYesCustomNoNoTLS + Custom E2EEAlwaysYesYesYesYesYesYesNot needed
ThreemaAGPLv3F-Droid: No, Play: YesNoCustomNoNoTLS + Custom E2EEAlwaysWebYesYesYesYesYesNot needed
TelegramGPLv2F-Droid: No, Play: YesNoCustomNoNoTLS + Custom E2EENoYesYesYesYesYesYesAs identifier
WhatsAppNoYesNoCustomNoNoTLS + Signal E2EEAlwaysWebYesYesYesWith PhoneYesAs identifier
Facebook MessengerNoYesNoCustomNoNoTLS + Signal E2EENoWebYesYesYesYesYesFor signup
Google ChatNoYesNoCustomNoNoTLSNoWebYesYesYesYesYesFor signup
SkypeNoYesNoCustomNoNoTLS + Custom E2EENoYesYesYesYesYesYesFor signup

Criteria:

  • Offline messaging is the ability for a party to send a message to an offline party, go offline themself, and the other party to later receive the message when back online while the sending party was still offline.