So I set up a XMPP server in my homelab this weekend to see how the ecosystem has evolved since the last time I used it. Only took me a few hours.

It seems like it has pretty much everything we'd expect from IM these days? E2EE with forward secrecy, group chats, message archives, reactions, file uploads, audio messages, voice and video calling, location sharing, etc. etc. It's even federated!

Why are we sleeping on this tech? Is there some unmitigated downside I haven't discovered yet?

#xmpp

@smn

> Why are we sleeping on this tech? Is there some unmitigated downside I haven't discovered yet?

No. The other tech has better advertising .. and that's all there is to it.

Happy to have you back on #XMPP !

@gnemmi @smn ive always liked xmpp. only barrier ive seen is getting nontechnical connections to onboard.

@jae I'll give it to you that onboarding could be kind of an issue, but #XMPP has come a really long way in that regards. From the server side of things (with mod_invites) just as from the client side with easy onboarding straight from the app without having to create an account from a web page or anything like that.

Onboarding from a recent (mid 2025) client is as easy as installing the app, open it, choose create account, pick one from the drop down list of server, provide a password. Done.

@gnemmi the group of clients i maintain took pulling teeth to get them to move to #deltachat which i contribute to and run #chatmail relays on (also stefano has one on bsd.cafe!). a couple of them know about xmpp but noted they had a hard time figuring out basic account setup. i'm reasonably technical so for me, it's not an issue but i think sometimes people get intimidated by something they aren't familiar with vs the platforms that have marketing that signals ease of onboarding. to your point, if xmpp had a marketing department funded, it'd be over :-)

@jae @gnemmi

Yes, Delta is mainly made by a German company, so they have more or less the complete project in their hands. All clients are based on exactly the same library. That gives a nice "out-of-the-box" experience.

#Jabber/#XMPP is a huge and diverse ecosystem with sometimes conflicting interests or priorities. And it's an open standard with many implementations, which can result in incompatibilites.

I prefer the latter, because I see more advantages in that approach, but YMMV.

@debacle @gnemmi

> Yes, Delta is mainly made by a German company, so they have more or less the complete project in their hands. All clients are based on exactly the same library. That gives a nice "out-of-the-box" experience.

yip, i work on the project the gerrman's have built the ecosystem to use the common core. it's fairly robust and has allowed me to write a tui for #deltachat

i've also created an xmpp <---> deltachat bridge in go that's almost ready to release (working on the omemo part still).

> #Jabber/#XMPP is a huge and diverse ecosystem with sometimes conflicting interests or priorities. And it's an open standard with many implementations, which can result in incompatibilites.

true, but the fact that we have this battle-tested protocol and you can build on is really nice.

@jae @gnemmi

Can't wait to try your XMPP-Delta bridge!

Is there a public repo somewhere?

My vague impression is:

Delta is focussed on private chats (individuals, small groups) and has its strength there.

#XMPP is deliberately a universal protocol for everything: private chats, team chats, public chats, social. In my company we even built an IoT product based on it!

Still, some #Jabber clients are focussed: #Conversations_im on private chats, #Movim on team chats and social features etc.

@debacle @gnemmi currently the repo is on my system. it'll open up once its working. the omemo is kicking my ass.

i think your take on deltachat is likely spot on. but we use email as a transport layer with some bolt ons for performance

there's not much call for interop with other platforms but i can't force it on people so i engineer bridges.

@debacle @jae @gnemmi but will it give smoother experience like conversations?
@methuselah @debacle @gnemmi i think the experience is subjective with #deltachat similar to how xmpp clients all have their pros/cons. i'm still working on the bridge if you were inquiring on that. i need to collaborate with someone to figure out the best way to get the actor account for the bridge to use omemo. clear works perfect for bidirectional interop, but the omemo has scorched my brain for days :-)

@methuselah @jae @gnemmi

Idk. Never tried Delta, because it doesn't have a client my OS. Only from third party repos, which I try to avoid.

Trying the bridge will be challeging, because nobody in my bubble does use it so far 😉

@debacle @methuselah @gnemmi what operating system do you run?

> Trying the bridge will be challeging, because nobody in my bubble does use it so far

i've got people on both sides of #xmpp and #deltachat since both platforms i like a lot. ill figure it out soon i hope, but taking a step back to solve some ci issues i hope on an upstream repo

@jae @methuselah @gnemmi

I'm on #Debian and I'm also co-maintainer of various #Jabber related packages (#Dino, #Gajim, some more).

Installing Delta on Debian is easy (they provide appimage, flatpak, or snap, AFAIK), but I *strongly* prefer Debian main, i.e. not third party repos. That's easy with both Jabber and Matrix, but not yet with Delta.

Situation might improve at some point, though:

https://bugs.debian.org/1073037

#1073037 - RFP: deltachat -- chat system, uses any email server as a backend - Debian Bug report logs

@debacle @methuselah @gnemmi i came from debian for years, i can't even recall why i left. there is flatpak/appimage for the desktop clients. i'm working on a tui (unofficial) that'll eventually get packaged if appropriate. but i can understand the lean towards your preferences.

@jae @debacle @gnemmi

Nice! I was thinking I'd do a deltachat/XMPP bridge one of these days, but one less thing to do for me. My little finger told me @daniel might maybe possibly maybe be maybe interested in doing proper e2ee with a deltachat bridge (proper e2ee=dedicated client support needed).

What did you make your bridge with? (Language? Lib?)

@nicoco @jae @debacle @gnemmi @daniel https://github.com/chatmail/core#language-bindings-and-frontend-projects it's rpc so there's a few memes for it, doing transparent e2ee over the bridge might be a bit tricky though
Issues · chatmail/core

Chatmail Rust Core library, used by Android/iOS/desktop chatmail apps, bindings and bots 📧 - Issues · chatmail/core

GitHub
@fluttersh @jae @debacle @gnemmi @daniel
> transparent e2ee over the bridge might be a bit tricky though
Certainly tricky, but probably fun to do. It would definitely require either XMPP client deltachat-specific support or a more generic approach like this protoxep by @Goffi https://xmpp.org/extensions/inbox/gateway-relayed-encryption.html
I know literally zero person that use deltachat so there isn't a lot of incentive for me to start anything related to that… but who knows, fun and/or funding could be enough.
XEP-xxxx: Gateway Relayed Encryption

This specification describes a mechanism for end-to-end encryption with gateways that is compatible with third-party networks.

@nicoco @jae @debacle @gnemmi @daniel @Goffi would b interesting to see what we can do with both lol, you could make https://conversejs.org/ a webxdc app and use it on top of apps that support webxdc or chatmail could have a xmpp transport compatibility, but xmpp s2s for me is not a resendy as email
Converse

Converse.js - Open source, web-based XMPP chat client. Self-hosted, customizable web chat with end-to-end encryption.

@nicoco @debacle @gnemmi @daniel the bridge is in go, it works bidirectional and for each contact or muc it will create a new deltachat group for the user and his actor (bridge account for xmpp). its designed for single users vs everyone sharing the same bridge endpoint.

its been a while since i got deep into xmpp spec but its been fun so far. missing piece is omemo on the xmpp actor account which is proving tough.