this post was submitted on 19 Aug 2023
148 points (80.6% liked)
Asklemmy
44149 readers
1321 users here now
A loosely moderated place to ask open-ended questions
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- !lemmy411@lemmy.ca: a community for finding communities
~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'd rather push for XMPP personally, the matrix protocol has been ~~a dumpster fire~~ in an "almost ready, trust me bro" state for as long as it has existed, and failed to justify its own weight and complexity. But that's mostly irrelevant since they are open protocols and can somewhat bridge with one another.
I'm selfhosting a Matrix server and have all my Chats from other apps also bridged to there. For just text chat I don't feel like Matrix is missing anything, the thing preventing me from getting my not so technically minded friends on it is the missing support for good group voice chat.
It XMPP better for group VC? Is the option available to bridge Messenger like Signal, Telegram, WhatsApp, Discord, iMessage to XMPP?
Same here, but with XMPP in place of Matrix. For historical context, XMPP was invented about 25 years ago on the premise that people were already tired of having their instant messaging scattered over multiple protocols (rather than Signal, Telegram, WhatsApp, Discord, iMessage now, it was Yahoo, MSN, AIM, ICQ, … then), so bridging is very much front and center in the XMPP world. Over time, people also realized that bridging sucks in general (you either dumb down your client to the lowest common denominator which sucks for yourself, or your client isolates itself from the source protocol enough that it sucks for everyone else).
To add insult to injury, most modern protocols also forbid, by their ToS, the use of alternative clients (which very much includes bridges), and to the best of my knowledge WhatsApp, Signal and Discord will eventually suspend your account on this basis.
Matrix is still trying to carve a niche for itself in this space, and is failing IMO (judging by the quality/security of the bridges they have come-up with, and the recent libera.chat fiasco). I'd say that the situation in this regard in XMPP is only marginally better due to the fact that XMPP had a decade headstart to fail and try over, and I would not recommend using bridges on either of them if that can be avoided.
I'd say "it depends". Fun fact, Matrix uses jitsi-meet under the hood (which is XMPP + a media transcoding/multicasting component that doubles as a relay), and jitsi-meet is my recommendation for this use-case: as long as the central server has good bandwidth, you can really scale up your VC to many attendees. On top of that, XMPP has support for peer-to-peer group VC, with the benefit that hosting is simpler, it doesn't require any central component/relay (but the bandwidth cost is incurred on all participants and you won't go beyond a handful of attendees that way).
And to add to @u_tamtam@programming.dev's info about setting up XMPP here is a ansible playbook that you could use to deploy matrix: https://github.com/spantaleev/matrix-docker-ansible-deploy
I would look at what you want to use it for and see if you can do that better with XMPP or Matrix. The factor that is keeping me on Matrix is that I have all diffrent chats with people on different platforms in one client that is cross platform. Here is the list of available bridges in Matrix to get other chats into it: https://matrix.org/ecosystem/bridges/
But keep in mind that is is against ToS for most apps, so there is a small risk of getting banned from other platforms. I can only tell you that I've been using it with WhatsApp, iMessage, Discord and Signal for half a year and am not banned anywhere. That is with running my own Matrix Server and bridges on a rented VPS.
For information about what XMPP can do you'll have to do research on your own as I don't know anything about it besides that google kinda "killed it".
yeah, as I wrote above, that's no different in XMPP (but probably much more secure and better maintained: till recently most of the bridging in matrix-world was leveraged by libpurple, which has an horrendous security track-record).
If you are getting into bridging in XMPP, I recommend giving slidge a try: https://sr.ht/~nicoco/slidge/
https://slidge.im/core/user/low_profile.html#keeping-a-low-profile
And yet it has hundred folds more users than Matrix :) XMPP is ubiquitous (it props up google cloud/nintendo switch push notifications, if your online game has a chat system with million users that's it, WhatsApp is using it, you have billions of IoT devices running it, …) so just like Linux it can't really be "killed" at this point as a critical piece of software infrastructure. On the user-facing side, things are alive and kicking with great and well-maintained clients (which is more than can be said about matrix, being a single-source implementation held together by a single company constantly fighting financing issues).
You should definitely give XMPP a chance, but not feel bad about ending-up with whichever feels better: they are mostly fine, and largely preferable to the non-standard/non-federated alternatives.
XMPP is orders of magnitude lighter weight so that might factor in if you have associated costs to running in the cloud.
If you want to get started the easy way, go with ejabberd, it has sane defaults and lots of convenience (e.g. it embarks a stun/turn server to facilitate calling through NAT, acts as a ACME client to renew certificates automagically, …).
On Android, Cheogram is a good client to recommend for power-users, Quicksy/Conversations for those who want to use their phone number for contacts auto-discovery. Desktop has Dino/Gajim, (i)OS(X) has SiskinIM, BeagleIM.
Regarding the libera.chat drama, you can read more here: https://libera.chat/news/temporarily-disabling-the-matrix-bridge
IMO that tells a lot about the people behind Matrix and their overall attitude (I had the same "trust us", "it's gonna be soon, I swear!", "that was bad luck but it's gonna be fine!" vibes when interacting with the Matrix team members in the early days).
Good thing that I'm in the EU and the big chat platforms will be forced to open up their API to third-party clients soon with the DMA.
But from my point of view bridging with matrix works well and I have all my chats in one place. And for me that is the only reason I'm sticking with matrix as only one other person I know is using matrix directly. While it would be ideal to get everyone on one decentralized chat platform that is also rather unrealistic... so I'm doing my part using Matrix and getting friends on it when it makes sense but not actively trying to get people on there that don't have a good reason to use it. And using XMPP mostly sounds like it is just around longer but not that much better, so switching now dosen't seem to make sense.
Yep, if you are on either, you are fighting the good fight, so keep it up :)
And if you self-host, you'll find it dramatically easier to do on XMPP (that's how I ended-up here, after giving up on Matrix's shenanigans).
I will! It is a really nice setup for me.
Interesting, but I got past that hurdle... and I made it extra hard for myself as I didn't use the ansible playbook but instead created my own docker setup (own as in writing a docker-compose.yml myself, not as in creating the containers from scratch). But this way I understand the system and could fix problems that I had myself rather nicely.
I was thinking more of the "day to day admin" side of things rather than "getting it running for the first time": ejabberd really runs like clockwork, demands no effort, no attention, packs all the features you need, and uses close to no resource.
By that time, I've been hosting services for communities for decades, and a good argument in favour of keeping XMPP, no matter how much adoption it would eventually get was that ejabberd is one of most "fire & forget" software I've ever deployed. Right now I have an instance running with 500 users and it barely ticks above 150MB RSS.
In comparison to that, synapse for a dozen users, especially in the early days, was a burning hot mess. The whole stack is rather fragile and I was always worried about something breaking up, or resources going wild. If you are solo admin with users across timezones depending on you, that might matter a lot.