Homepage | Edited April 2022
┌Introduction
│FAQ about messengers
│Which messengers to avoid
└──
┌Private messengers
│Private messenger feature comparison
│Server-based
│┌Protocol
│XMPP protocol
│Matrix protocol
│E-Mail based
│DeltaChat
│└──
└──
Session
Peer-to-Peer
Jami
Briar
Advanced
Self-Hosting
An attempt to simplfy choosing a messenger from my search for the best. My current favourite is XMPP. If there are any errors or you have suggestions please let me know.
I will prioritise messengers with:
Ease to use
Support for all major platforms
Native clients
Self-hostable servers
Ease to use
I will not list messengers with:
No client and source code available or non-free licences
No Encryption (unless self-hostable)
A phone number required
It uses/advertises cryptocurrencies (currently excluding Session)
Consider using a privacy respecting operating system for the safety of yourself and your contact.
Key
~ = informational
¶ = in-page link
Review dot points are top to bottom by piority
Client = App, application, program
Server = service provider website
Looking for Slack or Discord-like grouped chat channels? Have a look at Matrix ¶
Looking for Telegram or Whatsapp-like simple 1-on-1 or single room group chats? Have a look at XMPP ¶ or DeltaChat ¶
Looking for peer-to-peer 1-on-1 chats? Have a look at Jami ¶
Want to communicate with e-mail with an easy interface? Have a look at DeltaChat ¶
Wikipedia's Comparison of cross-platform instant messaging clients
Why should I avoid phone number services?
Why should I care about encryption?
Messages should only be able to be read by you and your peers. If anything were to be leaked from the server you would not need to worry about your messages being publicly available online.
I don't have anything to hide
You may not but your contact might
Avoid anything without a viewable client and encryption method source code. Server source code is prefered but methods that don't give the server your encryption key should be good to use (such as encrypting an E-Mail outside the servers webmail interface)
I don't know what any of that means
It's basically any messenger that is run for profit, which is probably 95% of messengers
Helpful tool: tosdr.org see an easly readable overview of a sites Terms of Service
"Privacy focused" messengersElectron, Chromium Embedded Framework or any other downloadable web applications are slow, bloated and full of security flaws. It's basicly a seperate web browser for your programs which will eat up RAM and leave you behind on web browser security fixes because they are seperated processes from your main web browser. For something as simple and private as sending messages it is not recommended.
If you press Ctrl+Shift+i it should open a developer console. Another way is to press the Alt key, if a menu pops up at the top with something like "File Edit View Help" it likely uses electron.
Protocols depend on client so I have based XMPP on Dino/Conversations and Matrix on Element. Consider Jitsi when you want to do a voice/video call or screenshare on messengers that do not have it.
Features | XMPP | Matrix | DeltaChat | Session | Jami |
---|---|---|---|---|---|
Account creation in-app | ✔ ﹖
With XEP-0077
|
✔ | ❌ | ✔ | ✔ |
📞 1-on-1 Audio/Video Calls | ✔ ﹖
With XEP-0166 Jingle
|
✔ | ❌ ﹖
DeltaChat allows you to send Jitsi links from the application, but it is not native
|
❌ ﹖
Planned
|
✔ |
📞 Group Audio/Video Calls | ❌ | ✔ | ❌ ﹖
DeltaChat allows you to send Jitsi links from the application, but it is not native
|
❌ ﹖
Planned
|
✔ |
Screensharing | ? | ✔ | ? | ? | ? |
👥 Group Chats | ✔ ﹖
With XEP-0045
|
✔ | ✔ | ✔ | ❌ ﹖
Planned
|
🌐 Link previews | ~ ﹖
Available as an option in blabber.im (Android), pull request for Dino (Desktop)
|
✔ ﹖
With a compatible homeserver, enabled in settings and in an unincrypted room. only applies to yourself
|
❌ | ✔ | ❌ |
🖊️ Edit sent messages | ✔ ﹖
With XEP-0308
|
✔ | ❌ | ❌ | ❌ |
🗑️ Retract your own messages from others | ✔ ﹖
With XEP-0424: Message Retraction
|
✔ | ❌ | ❌ | ❌ |
💬 Optional typing indication | ✔ ﹖
With XEP-0085: Chat State Notifications
|
✔ | ❌ | ? | ? |
✔️ Optional read receipts | ✔ ﹖
With XEP-0085: Chat State Notifications
|
✔ | ✔ ﹖
When messaging other DeltaChat users
|
✔ | ? |
Send to offline users | ✔ ﹖
Works best with XEP-0160
|
✔ | ✔ | ✔ | ? |
⤵️ Send to yourself | ✔ | ❌ ﹖
Creates a new group chat room
|
✔ | ✔ | ✔ |
🤖 Chat bots | ✔ | ✔ | ✔ | ❌ | ❌ |
💣 Optional self-detructing messages | ? | ❌ | ✔ ﹖
When messaging other DeltaChat users
|
✔ | ❌ |
Share multiple attachments at the same time | ✔ | ? | ? | ? | ? |
Include text while sending attachment | ❌ | ❌ | ✔ | ✔ | ~ ﹖
Sends text message at same time as the attachment
|
Screensharing | ? | ✔ | ❌ | ❌ | ? |
Quote messages | ✔ ﹖
Text only, doesn't link to original message
|
✔ | ✔ | ✔ | ❌ |
✒️ Text formatting | ✔ | ✔ | ❌ | ❌ | ❌ |
🔍 Emoji search | ✔ | ✔ | ✔ ﹖
Desktop only
|
✔ | ✔ |
🎤 Voice messages | ✔ | ✔ | ✔ | ✔ | ✔ |
🎥 Quick video message buttons | ✔ | ✔ | ✔ | ❌ | ✔ |
🟢 Online/offline status | ✔ | ✔ | ❌ | ? | ✔ |
└🟡 Away/busy status | ✔ | ❌ | ❌ | ❌ | ? |
Writen status message | ✔ | ✔ | ✔ ﹖
Uses last sent E-Mails signature, only visible when clicking users profile
|
❌ | ❌ |
Message without adding as contact | ✔ ﹖
Some servers may prevent you
|
? | ~ ﹖
Adds to local contacts but can be deleted afterwards. Contact is not notified
|
✔ | ? |
Set own nickname | ✔ ﹖
With XEP-0172: User Nickname
|
? | ? | ? | ? |
Give others nicknames | ✔ | ❌ | ✔ | ✔ | ❌ |
🌐 IP hidden from contact | ~ ﹖
Uses peer-to-peer when using voice/video calls and direct file transfers with XEP-0166 Jingle
|
? | ? | ✔ | ? |
🚫 Block users | ✔ ﹖
With XEP-0191: Blocking Command
|
✔ ﹖
Called "ignore"
|
✔ | ✔ | ✔ |
📍 Location sending | ✔ ﹖
With Conversations (Android) XEP-0080
|
❌ | ✔ | ❌ | ❌ |
Attachments keep their filename | ? | ? | ? | ? | ? |
Avatar transparency | ✔ | ? | ? | ? | ? |
Ability to change contract ID | ❌ | ? | ❌ | ? | ? |
Does not require account verification | ~ ﹖
Depends on the homeserver, uncommon on XMPP
|
~ ﹖
Depends on the homeserver
|
✔ | ✔ | ✔ |
Allows TOR connections | ~ ﹖
Depends on the homeserver(?)
|
? | ? | ? | ? |
Message character limit | ? | ? | ? | ? | ? |
XMPP | Matrix | DeltaChat | Session | Jami |
Encryption method/s
XMPP: OpenPGP, OMEMO: Based on a Double Ratchet and PEP, OTR & othersAccount creation difficulty
XMPP: Medium-Hard. You will need to find a client with a high amount of features. You will need to find a server with modern features.Logging in with another device
XMPP: Sign in with XMPP ID and password. Will need configuration to recover encrypted messages.Censorship
XMPP: Account can be deleted by server admin. You can be banned from group chats by group moderatorsContact ID
XMPP: username@domain.nameAttachment limit
XMPP: P2P 1-on-1 with XEP-0166 Jingle: Unlimited, server upload is server dependent. Expiry date is server dependentMetadata leakage
XMPP: host server knows your IP unless the server supports a tor addressGroup chat roles
XMPP:soon
XMPP:Reliable, but could be taken offline without any notice
Why protocols?
Protocols are good for messengers as there is no one point of failure. A protocol can't be taken down or become bankrupt like a single server, for example: Wikipedia's list of defunct instant messaging platforms
My recommended clients:
Windows: Dino
unofficial alpha Windows builds Keep up to date with the RSS feed
Android: blabber.im Google Play Store F-Droid
GNU/Linux: Dino
Untested: iOS: Chatsecure, monal.im
Untested: Mac: monal.im
Web: conversejs.org
Servers picked at random with many features (full complience, see below for info)
trashserver.net 🇩🇪 Germany
hookipa.net 🇩🇪 Germany since around 2007. 100MB attachment limit, lasts for 30 days. Account deletes after a year of inactivity
xmpp.social 🇩🇪 Germany since around 2007
jabbers.one 🇩🇪 Germany. 50MB attachment limit, quota 200 MB, lasts for 10 days
openim.de 🇩🇪 Germany
anonym.im 🇩🇪 Germany
jabber.lqdn.fr 🇬🇧 France
chinwag.im 🇦🇺 Australia since 2015
xmpp.is/.chat/.co/.cx/.fi/.si/.xyz 🇷🇴 Romania
lightwitch.org 🇮🇹 Italy
e2e.ee/.wtf/ee.e2e.ee/noarchive.chat 🇳🇱 Netherlands Free usernames must be more than 8 characters
riotcat.org 🇩🇪 Germany / Click jabber. Need to request account Can only register from within a client!
Avoid:
creep.im 🇬🇧 France, United Kingdom. Can only register from within a client Requires a captcha to contact creep.im users
sum7.eu
Advanced serverlist
Check server uptime
**OMEMO allows the client to automaticly end to end encrypt messages and attachments to another client with OMEMO with any compatable server.
The higher server complience is for a server, the more modern features you will be able to use with a client, if compatable. These features include
*Both users servers must have the same features to be compatable with each other
Pros
+ Extremely lightweight
+ Been around since 1999, used and proven through many corperate services (WhatsApp, Zoom, Google and Apple mobile push notifications and many more, check the sidebar)
+ No file size limit on 1-on-1 chats using peer-to-peer Jingle (XEP-0166)
+ Ability to edit messages
+ User text and avaiabilty statuses
Cons
- Hard to "start using". The user needs to know that there is no main client like other services
- No group call availability
- Link previews aren't common on clients
Informational
~ E-mail like contact addresses: name@server.com
Pros
+ (Currently a pull request) Optional link previews
+ Supports calls
+ Connect multiple accounts at the same time
+ Low RAM usage on Linux ~30MB
Cons
- Doesn't encrypt new conversations by default (there are pull requests to fix this)
- High RAM usage on Windows alpha ~60-100MB
- No abillity to use dark theme on Windows yet
- No thumbnails in the filepicker (GTK issue)
Informational
~ GTK interface
~ Still in beta
--------------------------------------
The best XMPP experience, developer constantly pushing XMPP forward
Pros
+ Supports calls
+ Connect multiple accounts at the same time
+ Embedded audio file player
Cons
- Non F-Droid users will be put off by it costing money upfront on Google Play, making it harder to migrate people to it
- First launch prompts to create an account on the conversations.im instance which is free for 6 months then paid. Might confuse people to think XMPP is a paid service.
- P2P (Jingle) sent attachments do not keep their filename
Informational
~ No embedded picture viewer or video and gif playback
~ Many different forks if you dislike certain features
Conversations fork with extra features and a different look
I will list the differences from Conversations below
Pros
+ Free on the Google Play store (also on F-Droid)
+ Lists some good servers to choose on the account creation screen, but also shows some servers without a high amount of features the application makes use of
+ Optional support for simple HTTP link previews, but won't embed images links or Youtube and Twitter content (their fault). Off by default
+ Allows you to replace YouTube links with invidio.us links of the server of your choosing which fixes link previews
+ Optional GIF playback in chat view. Off by default(?)
+ First launch gives information on what XMPP is and how user IDs work
+ Different UI accent colours to choose from
Cons
- Too many tutorials
- Can't disable (disconnect) account without enabling multiple account support
- Ugly theme colours
Informational
~ Need to change a setting to allow multiple accounts
~ Button to browse chat media on chat screen
~ In-app fullscreen media viewer
Different skin blabber.im fork
Cons
- Paid on the Google Play store (available on F-Droid)
- Shows more servers on account creation, but chooses quantity over quality
--------------------------------------
Pros
+ Nice interface
+ Plugin to preview image URLs
+ Connect multiple accounts at the same time
Cons
- Doesn't support calls on Windows. Perhaps consider using Jitsi (open source in-browser voice and video calls)
- Doesn't encrypt new conversations by default
- High RAM usage ~100MB
- Some issues with sending attachments
- Long Chat log timestamps on each message
Official server (matrix.org) is not recommended as it is slow and bans users randomly. It has also has also been hijacked before.
My recommended clients:
Android and iOS: Element
Desktop: Element, until there's a better native alternative
Web: Element
Cons
- Potentially shady history
- Chat rooms and spaces (Element's grouped chats) can't be deleted
- Heavy to run for server owners, meaning less servers will be able to host their own server
Informational
~ Modern chat gimick bloat such as emoji reactions and stickers
~ Some servers require an E-Mail address to register (can be removed after registration)
Element is the most popular and feature rich client available for Matrix, but it uses electron
Pros
+ Spaces lets you group chatrooms between other users, similar to Slack or Discord
Cons
- Can only handle one account unless you use workarounds
- Android client on F-Droid is over 100MB due to being a universal APK
Informational
~ You need to keep your encryption key if you do not have another logged in device which may be difficult to remember or weak if you don't use a password manager
~ Visually similar to Discord, often concidered a good alternative
--------------------------------------
Cons
- Electron
- Can only handle one account
Informational
~ Beta
~ More Slack/Discord style interface than Element
DeltaChat is an e-mail client with a traditional messenger interface. It automatically encrypts when messenging another DeltaChat user. Different clients are possible but I haven't tested them, for example adbenitez/deltachat-cursed
Pros
+ Compatability with E-Mail, something almost everyone already has
Cons
- Slow. Upon pressing send it takes Gmail to Outlook 5-12 seconds to receive
- Doesn't work with two-step verification login on E-Mail accounts except Gmail on phones, you need to create an "app password" from the your E-Mail provider settings. Solutions to this are well documented but consider this if you have less tech-savvy contacts. Some E-Mail providers also try to scare you out of using app passwords for being only used by "insecure apps".
- Questionable usage of funds
- Press enter to send is not default on desktop
- Chat bubble design doesn't work well on desktop computers due to the large display size
Informational
~ No voice or video calls, intergrates Jisti links for calls
~ First message to new contacts are unencrypted because encryption files need to be exchanged
~ Using an existing E-mail address could be bad for anonymity. Consider what information about your E-Mail address is available on the internet when talking to people, especially if your E-Mail address is on haveibeenpwned
~ GIF attachment autoplay
~ May have issues with attachments if your servers attachment download limit is low. 10MB is ususally the recommended limit
~ Supports multiple accounts but only one at a time
~ Some E-Mail providers might not allow sending .exe or zips with .exe (I don't know if the encryption fixes this)
Pros
+ Optional support for link previews
+ Promises to hide your IP
Cons
- Developed in Australia, a five eyes country. Could be tampered with from the inside at any time by gag order, read under the Australia section for info from their side
- Plans to make clientside features paid in the future (See: Session: Session Pro and beyond)
- Feels sketchy
- Currently does not support voice or video calls
Informational
~ Uses random 66 number and letter ID codes for adding contacts. Example: 056fc434103b82d15...
~ Android application optionally uses google services for push notifications. Can be disabled on first launch
Gives me too many problems. I am checking the progress the program is making because it has great potential
Pros
+ No limit on attachment size
Cons
- Unrelyable on mobile right now, need to adjust settings to not drain battery life
Informational
~ Peer to peer, no servers
~ Accounts are stored in local files
Only for Android and (soon) desktop computers. Focuses on being unable to be censored
the final redpill: you have to use what your friends use