IMHO XMPP / Jabber is the best Instant Messenger (IM) protocol
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.
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.
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 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!
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, 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.
@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.
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.
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.
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 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.
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.
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
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.
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?
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.
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).
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.
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 overall 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.
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...
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 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.
TL;DR: Matrix is good for text AND binary data (XMPP is text only) but XMPP is a bit more centralized than matrix, though both work based on federation principles. XMPP is more lightweight but supports more config options.
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.
@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).