I wondered if anyone here is self-hosting a chat service like XMPP or Matrix. If so, what’s your experience like? How was it to deploy/maintain? And (importantly) how has the end-user experience been? Have your friends/family joined?
For some context on my use case: I’ve been using discord for scheduling in-person d&d games, movie nights at my house, etc with a bunch of in-person friends (we’ve got ~50 users, all local). We also share memes now and then, but don’t really use voice/video calling. So far, I’ve liked how accessible/normie friendly discord is… like, if I meet someone at a local game store, it’s super easy to add them to our server. They usually already have an account. I’ve always hated the privacy implications of discord, but it’s been a tradeoff for ease of use.
With upcoming changes to discord’s identity verification, that tradeoff is becoming harder to justify. I love the idea of self-hosting chats… many of us are involved with local activist groups, so a self-hosted e2ee solution would be ideal.
My main concern is how the end-user experience is. I know XMPP/Matrix clients don’t really have feature parity with discord, but we don’t use many of the features anyway. I’m a bit fearful that asking non-technical people to make an account and download a client will be a non-starter if there’s any friction whatsoever– even if that friction is just “this app looks old/weird.”
I think my best bet is to try deploying Prosody/Snikket (it seems like XMPP is less of a headache than Matrix? also less resource-intensive?) and then testing out a bunch of clients to see if any are polished enough for my group’s use.
I’m sure I’m not the only one thinking about this, given the recent news.. I’d love to hear if anyone has some experience!
I self-host my own XMPP server and it’s been quite nice for me, but I’m also rather technical and so are the other people I have been talking to. I’m really unsure what the experience of XMPP would be for non-technical users, maybe not very good. XMPP has a lot of clients that are native, which means that they are rather lightweight, but I suppose non-technical people would just find them to feel old. For Android I think Conversations is a pretty sleek client though.
Matrix would probably feel more “modern” when it comes to its web-based clients, but… UX is really not good, and even as a technical user I feel frustrated using it. Especially when it comes to having an encrypted group, the issues with people’s keys being messed up and being unable to decrypt messages goes up the more people you have in a group, and most larger Matrix rooms have encryption disabled for that reason (most Matrix bots also only work in non-encrypted rooms).
XMPP has about the same issue though, it’s just something you’ll have to overcome if you want E2E-encryption I guess. If you have everyone residing on the same server though and you trust the integrity of that server you can also have room encryption disabled - data will still be TLS encrypted in transit even when it’s off. Then put full disk encryption on the server to protect the data at rest. Not 100% ideal but obviously an option.
I self-host a synapse server (matrix) and it’s really turned me off the whole protocol. I’ll still check my channels every so often, but I’ve found matrix to be slow and buggy, and it has a whole host of major issues that are not likely to even be fixable.
If you want e2ee, Signal is your ONLY good option. It is centralized, but that gives you anonymity and, unfortunately, there simply is NO OTHER good e2ee implementation. A well known infosec blog put out an article earlier today going over some of the reasons why nothing else is up to snuff, in response to the recent discourse:
Thanks for the replies and articles, all! As a test, last night I spun up a Snikket server (which is preconfigured Prosody), and so far I’ve been pretty impressed with its presentation.
It’s pretty basic, so it still remains to be seen if my friends will actually use it, but it’s got a pretty slick “invitation link” feature for easy on-boarding and account creation out of the box. I also like that the invitation link sends mobile users to download Snikket’s own branded XMPP client for a more consistent user experience across platforms. From what I can tell, the Android version is just Conversations under the hood, which is decently sleek like @ROllerozxa said.
I sent an invite link to my parents, and they were able to join and start chatting without problems, so I’m hopeful that’s a bellwether for other non-technical people too.
I’ve been looking into Snikket specifically, so this is cool to hear about! I also liked the sound of the invite feature for ease of use, and circles for separate (but potentially overlapping) groups of people.
I know it’s a week since this was posted but I thought I’d sign up to say, try DeltaChat. It might help out with network effects as it’s basically a fancy email client, so it just runs off normal email infra and no new accounts or services are needed. Because it’s just email, established mechanisms like email encryption (default) and Push IMAP are used for notifications so it works well with DeGoogled phones as well. It has experimental voice support, but I would reckon something like TeamSpeak is better for that.
I’m running an ejabberd instance just for me. It’s not trivial but also not super hard. I also set up a bridge to IRC and Matrix for the chats I have there. It worked great so far! The only disadvantage are the clients which are not the most user-friendly ones. But all together, it’s much better than Matrix (with Matrix clients).
Ejabberd can also be run on multiple nodes if you want to.