Thanks also from me for the thorough responses, this is very valuable information. I am still very new to Matrix and trying to understand how it differs from other protocols I am somewhat more familiar with, especially XMPP.
So please allow me go through your list of things Telepathy (which I don’t know) doesn’t do and compare them to what I know about XMPP and with what I understand about the privacy implications:
- Infinite scrollback serverside history
- I believe this is possible with XMPP via Message Archive Management
- Synced history across multiple devices
- I think XMPP Message Carbons deals with that.
- Server side search
- I cannot think of a way that server-side searching (of messages) would work at all with E2E encryption, which means the server has to be able to read the messages, what am I missing?
- Server side notification settings
- This sounds like something that could easily be implemented via XMPP’s various storage XEPs, summarised e.g.here.
- Read receipts
- XMPP can already do this.
- Read-up-to markers
- XMPP can already do this.
- Multiway voip
- Not sure about XMPP support for multiway, but I have done 1:1 video calls successfully.
- Promoting 1:1s to group chats and vice versa
- This sounds like a UI thing, if XMPP would start 1:1 chats automatically as “group chats”, this is done.
- Native end-to-end encryption (verifying keys, devices, sharing keys, etc)
- XMPP does this via OMEMO which supports both group and 1:1 chats.
- Encrypted file transfers
- XMPP offers multiple options there, from direct device-to-device to server-hosted.
- Redacted msgs
- What exactly do you mean by that?
- Reactions / upvotes / downvotes
- Sounds like it could easily be implemented on top of XMPP (similar to message receipts and read pointers), but I’m not aware of any out-of-the-box XEPs to support that
- Editable msgs
- This sounds like a thing the UI would be responsible for - the XMPP app Conversations e.g. allows editing of the last message
- Pinned messages
- Again, a UI thing
- Threading
- What exactly do you mean by that?
For those who don’t know XMPP, it supports (IMHO similar to Matrix) a federation system which allows anyone to install a “home server” and which works with IDs that look exactly like email addresses, which I think makes this relatively easy for beginners as all they need to know is that ID if they want to contact someone new.
So please forgive me that I still don’t quite understand what new things Matrix brings to the table that XMPP can’t do already. I understand the current XMPP landscape is so fragmented because most client apps and too many servers don’t support various subsets of these XEPs (or do so poorly), but to counter that the Librem 5 could e.g. enforce minimum requirements on the servers people want to sign up to. Once that is under control, the rest appear to be mainly UX choices and development.