IMHO XMPP / Jabber is the best Instant Messenger (IM) protocol

privsecfoss@feddit.dk to Free and Open Source Software@beehaw.org – 48 points –

It is battle tested, standardized, widely used, have open source servers and apps, end-to-end encryption (OMEMO), self-hostable and are low on ressources and federated / decentralized.

I use it with family and friends. Conversations and blabber.im on android and Gajim on Linux. There's also apps for windows and Apple.

Curious if anyone here use it and why, why not?

EDIT: Doh. In these Lemmy times I forgot federated. Added.

92

We used to use it at work and I loved it but then eventually got replaced by slack which I am not a fan of.

slack is the worst team communicate software ever existed. Everything is better than it.

I see someone hasn't used Microsoft Teams.

Or hipchat

Hipchat is XMPP. I used to connect to it in Pidgin.

I wish I knew that when we used it. I was using their client and it wasnt great. Slack was a welcome change when we switched

Even Microsoft Teams?

My wife uses teams for work, it seems pretty nice, it has everything in place, like video meeting, meeting note, calendar, and everything seems very streamlined.

Slack just don't have anything. What is your complaint about teams, is it unstable or something?

Buggy, uses a ton of resources, super weird UI. I've said no in job interviews to companies who use Teams as their main communication platform. Slack is "fine", but much better than Teams. At least it works, especially from Linux.

absolutely it is, worst part I hate is I cant mute/block anyone. Just have to deal with that annoying douche yapping all day in chat.

We use Teams and friends at work, so I know the struggle.

It's great, problem is adoption with non tech people. You clearly had better luck with your friends and family than most. It's hard enough to get them to use something as standard as Signal.

I host my own XMPP server and I like it (super lightweight and easy to set up), but good god the people that work on XMPP stuff seem to not want it to take off at all. They all complain that everybody is using matrix for some mysterious reason and when you explain that you can’t in good conscience get your friends to switch to it because there aren’t really great iOS apps it’s just a hissy fit about how people should use android instead… which is just not very realistic. Really wish XMPP had a good cross platform client. The client situation is improving rapidly and OMEMO finally mostly works everywhere! But it’d be really nice if there was a consistent client between platforms.

That all sounds really critical, but I really do like XMPP and I really hope it gets better and gains more traction again! We really need good federated chat again, ideally just associated with an email address or something… because the current chat ecosystem is a mess!

Agree it's easier to get techies on board. With normal people it is kind of a struggle competing and argumenting against the likes of WhatsApp, FB messenger and such. But I totally think it's worth it because privacy.

I’ve been self-hosting Matrix for years and it’s been amazing.

What I have to give to XMPP is that it's one of the easiest federated services to self-host. Running Prosody is super simple.

Prosody is amazing and I’m still astounded by how easy it is to get XMPP up and running. That’s great stuff!

We had an XMPP server at work but 90% of people wouldn't bother using it. As much as I dislike Teams it the only client that's ever been deployed in my company that everyone actually uses.

I had my own server and used it for a long time until Android decided that it knows better what background services I want to have running and thus killed the "instant" part of instant messaging.

Since then I'm on Signal and could at least convince most of my friends and family to move there.

My colleagues and I had set up a nice self-hosted XMPP server which everyone could use to chat in-house without any of the traffic leaving our network. We had it end-to-end encrypted and it was quick and easy. Then management (with the support of a few employees who like hype) switched us to Slack. It wasn't private, it wasn't end-to-end encrypted, all our confidential messages went out to the internet, the boss could technically read anything we wrote, and many people didn't like the UI. Once management got frustrated wit it they switched us to Microsoft Teams. After using that for a year, I miss Slack. Teams is a bloated buggy mess with a UI designed to confuse and no privacy, and it also has all the disadvantages of Slack.

A few of us have secretly switched to Matrix and Element. It's good. Don't tell management.

Reminds me of a company I recently got an job interview to (and got declined, but I would've declined anyway).

They were switching around their software every year and are currently in the process of migrating to Teams

@floofloof I would love to move to Matrix/Element but don't know a single person who uses it, so it doesn't seem like it would much benefit me unfortunately. I do still have an account though.

@privsecfoss

Install some bridges. I've managed to remove all those third party chat apps from my devices and just use Matrix to chat to everyone whether they're on Slack, Discord, WhatsApp, IRC, etc.

Can hyou point me on some good material to learn about them? I've been reading about those for years but never crossed a guide...

Take a look at this page for someone explaining how they moved from using Discord directly to using it via Matrix.

Thanks, it's very useful, sadly it looks a bit like the stuff of nightmare prone to breaking at the worst possible moment...

It's been rock solid for over three years for me.

the boss could technically read anything we wrote

That's honestly a very reasonable ask. Employees should have no expectation of privacy while using corporate owned machines on a corporate owned network. They need to be able to keep tabs on communications in order to ensure company data doesn't leak. It would be crazy to allow people to handle sensitive company data with no oversight.

the boss could technically read anything we wrote

My old work actually ran into some issues because they couldn't see DMs/private channels.

Maybe this is a cloud vs. self-hosted thing? It's been a few years since I've worked there though.

In an average workplace that seems like a bit of a losing battle to fight since everyone can message each other on personal phones anyway. But I can see it if it's a workplace that handles sensitive information and restricts the use of personal devices.

My workplace went remote-only. So they don't really stand a chance of preventing us messaging each other on our personal devices. I do try to keep the work machine separate though.

I'm still on irc

Irc is underrated. Its my example for people getting upset communities are moving to forums instead of the fediverse sometimes because its old that old does not mean outdated.

And don't get me wrong, I really like this communication model, but I would never suggest it for a major software project community. I need things to be fully baked for official adoption. Part of my interest in contributing here is getting us enough critical mass that threadiverse development gets to that fully baked point

Also big fan of IRC. It has some of the same advantages as XMPP, and then some for group chat.

I use it for OMEMO encrypted family messaging and image transfer (snikket). Very fast messaging, lightweight server, and the A/V works quite well. Biggest issue, imo, is the lack of a great iOS client - not a judgement on the developers, I think that's just the reality of developing on iOS. But an iOS client that works as seamlessly as Conversations would go a long way to regaining lost traction.

This is what I’ve been saying for years. Siskin is pretty good these days, but it’s still not perfect (push notifications with OMEMO have no content). It’s really hard to recommend XMPP to people when the iOS experience is kind of bad (with omemo, anyway).

I cannot recommend Siskin, as those in my life that have tried it have always experienced random issues. I find Monal to be a better experience in every way, except for the lack of calling support with Conversations.

Monal is okay. It chews up battery and recently did some heinous crimes with group chat notifications so I’ve switched to Siskin. Either way… Neither app is perfect. Xmpp is decent on iOS now, but still a little lacking.

I like XMPP and OTR is nice, but we need double-ratchet for secure communications and sync with multiple devices.

Omemo is double ratchet and my messages sync to multiple devices. New device can't read old messages sent before exchanging keys with the other clients.

It's trivial to self host. I'm running a server on a small VPS for the family. Best part is they don't even know they are running XMPP, just installed Conversations and that was it.

I switched to iOS from android a while ago, but conversations was an AMAZING app and I wish there was something even half as good on iOS. That said… isn’t it the case that conversations is a paid app on Google play, and only free on fdroid? It’s totally worth the $2 or whatever it was on Google play, but I feel like it’s a hard sell for normal people who are used to free chat apps? Did you have any problems with that, or has the situation changed since I last looked?

There is also Cheogram (conversations fork), which is actively developed/tweaked by the jmp.chat folks - very nice. Also Snikket (conversations fork) that is themed and tweaked to use with a snikket server, but it happily works with other servers.

Another interesting tidbit. Chromebooks integrate the Android runtime to run play store apps. Windows 11 is also kinda/sorta shipping an Android runtime, but not by default. You can also spin up an Android runtime on Linux. I tested the snikket android app on Windows 11 and ChromeOS - works perfectly. So, I suspect all conversations forks can run across Android, Windows, ChromeOS, and Linux platforms - pretty neat. Doesn't solve the iOS gap and getting the runtimes going could use polish on Windows and Linux. And nothing against the other desktop apps in development, but the ability to essentially run the Android app against most major environments makes me want to contribute to that code base (if I had any ability to develop for android, that is).

Ah yeah, another fun fact is that Snikket on iOS is a rebranding of Siskin. On iOS Siskin seems to be the best option right now with the one caveat that push notifications won’t contain the content of OMEMO messages (I think the plan is to design and implement an encrypted push XEP?). Conversations is probably the best xmpp application out there, so I’ve been tempted to run it on Linux via the Android runtime in the past. These days I’m pretty happy with Dino.

I feel like we need something like converse.js on all platforms or something. Just something decent and consistent so you can recommend it to a friend on a different device and help them / understand their perspective, you know? I think converse.js has a desktop app via electron now, which seems like a start.

The standalone converse app was problematic when I tried it last. Also, there was a summer of code attempt at bringing jingle a/v sessions to converse, but it was never completed and nobody seems to have picked it up.

That’s a bit of a shame. I don’t personally find jingle that important, but it’d be great if it worked… Also OMEMO on converse is sort of in a weird state I think. AFAIK it still depends on a JS libsignal library that’s deprecated.

Yes Conversations is still a paid app on Play Store. The F-Droid version also doesn't support Google cloud notifications so some message notifications will go missing occasionally. For Android there's also Quickly which is a Conversations fork and aTalk which works OK but reminds me of 90s Windows software. It's still quite usable though. Honestly Conversations is totally worth the money if only for the amount of effort gone into modernising the platform which also a testament to its extensibility.

Oh, I totally agree that conversations is worth the $4 or whatever. I just have a hard time convincing friends to switch over to a new chat application to talk to only me when it’s not even free for them, you know? And if it’s a less technical person getting them on fdroid is a tricky proposition too. I don’t begrudge conversations for charging, but I do think it would be easier to get people on XMPP otherwise.

IIRC Google Talk using XMPP and most major messengers having GTalk integration, they pretty much accidentally federated several messenger apps

They took out XMPP years ago. I had a lot of hope for the future when they first federated. Even ran my own server and was able to talk to Google Talk users. Alas...

Google's messaging play has only gotten worse since then. Oh well.

I still cannot believe the Google I/O where they killed Talk and said “we’re consolidating all of the Google chat applications into hangouts. There will only be hangouts” and then the very next Google I/O they announced TWO new chat applications (allo and duo), whose purpose I never understood, and then every year since they’re like “everything is Google meet now… no, not that Google meet, the other Google meet” and I have absolutely no idea what’s going on and nothing makes me feel so old and out of touch like trying to follow Google’s chat ecosystem.

I doubt it was accidental, that's standard tech corp playbook. Build on established technology or open standard,, then shut the gates when critical mass has been achieved.

I use it for pretty much all of my stuff, both as a message bus as well as a command-and-control mechanism for my bots.

I would like to hear more about what you're doing / how you have it set up. I've used xmpp to relay messages from home automation stuff - which usually involves piping something to a script calling a library.

I wrote an XMPP-to-REST bridge, one-to-N. Everything gets its own rail and message queue on the bridge so as long as something can make HTTP requests, it can send messages and receive them. Huginn agents, any of my bots (written in Python), even shell scripts. Just about everything I have that crunches numbers has at least one of those bridges and a population of bots running on it.

There's nothing wrong with command line chains, I have a really cut down version of System Bot re-implemented as a shell script (developed under Busybox's default shell) for my OpenWRT stuff.

How does this compare with matrix?

The real core difference is that XMPP just passes messages around (and history is just bolted on as an extra thingy between you and your server), while Matrix is literally a federated database of message history.

I think it should be incorporated into Lemmy as a chat function. Also been thinking if I could develop it, I have experience with XMPP from an application my employer creates.

Do we have to give every forum a chat function? I don't want anyone and everyone to be able to dial me up to talk about my internet post history

Considering the fact that there is a special field in user profiles for a Matrix handle, I imagine upstream would prefer something Matrix-y instead.

Of course I can't speak for anyone involved. Especially if someone else is thinking of writing the code themselves.

When I lost my cell modem due to the 3g shutdown, I switched to xmpp for home automation for a while. I should probably set that up again...

@privsecfoss I would absolutely love to get back to #XMPP as my main (ideally only) IM, but in time some things made it hard to do so:

- it's extensible and not all clients support all modernly needed extensions - the #Jabber XEP solves this (on paper/standard level)
- loads of spam - again, tackled by Jabber XEP bundle and clients that fully implement it
- and ultimately, 90% of my contacts there never pop up anymore - network effect problem

@hook
Extensibility is not a reason not to use XMPP.

It's true, not all XMPP software supports every feature. However we didn't all stop browsing the web because Internet Explorer 6 doesn't support HTML5 🙂

There is plenty of modern XMPP software to choose from, and if you don't want to choose, Snikket is a great place to start (in my humble opinion - I work on that project).
@privsecfoss

@mattj, you are totally right re extensibility & I probably worded that a bit awkwardly (I blame jetlag).

I guess my gist would be:
• XMPP is amazing, but also complex
• complexity ⇒ many clients
• small(ish) user base ⇒ not all clients support full Jabber XEP
• ⇒ choice paralysis or bad experience with first choice
• ⇒ user base stays small(ish)

🐔 & 🥚

IMHO to break out of it, we need critical mass (again).

( using #XMPP / #Jabber since 2010: https://matija.suklje.name/migrating-to-xmppjabber-and-aim-woes )

@privsecfoss

@hook
I understand. Your points somewhat echo what's written at https://snikket.org/about/goals/ and https://snikket.org/blog/products-vs-protocols/ . I think we agree on many things.

I just get triggered when these problems turn into reasons not to take action. I migrated my family to XMPP and it's great. Others have done the same.

I didn't ask them to choose clients, I just sent them an invitation link to our self-hosted server. They didn't even need tech support signing up.

My message: don't give up 🙂
@privsecfoss

@mattj, I guess you’re right.

I’m probably paralysed a bit due to my main XMPP server being (someone else’s) small instance that’s not very maintained (can’t blame them) and every time I log in I’m literally greeted with hundreds (thousands?) of spam invites and messages.

I should probably migrate to a more active server. Happy to pay/donate for it too.

(I moved my family to #Matrix, but would prefer #Jabber, esp. if self-hosting was easy enough for my weak-ass admin skills.)

@privsecfoss

Loved XMPP. There were issues. It was not always great at firewall traversal. Some of the other messages were more stable out-and-about. Moving to cell too kind of killed this stuff as who is going to keep their data on.

I'd use it but theres no one to use it with

How would you compare it to Matrix? I use Matrix and have never tried XMPP.

Matrix is more like IRC or Slack/Discord with a focus on group-chats, while XMPP is more like Signal, WhatsApp or Telegram. XMPP can also do group-chats, but the current clients don't have as much of a focus on it. Otherwise they are pretty similar, but XMPP is overall a much more mature protocol and the software has less bugs and is more performant.

I haven't used Matrix for messaging, so take this with a grain of salt. But xmpp servers and clients seem to be lighter on resources. Matrix has more capabilities for large groups.