Whenever XMPP or Matrix threads pop up on HN, several commenters casually mention their "friends and family XMPP (or Matrix) server."
How did you convince friends and family to move away from SMS/WhatsApp and replace it with a niche messaging app?
My family and friends aren't hardcore nerdy, but they're more tech-savvy than average. Their needs in messaging are mainly pragmatic: they want ease of use, reliability, and fun features. They don't care that much about privacy, decentralization, or extensibility (though I care about those things a lot).
I've been experimenting with self-hosting XMPP and Matrix servers and clients in the past week, and the UX is even worse than I expected. It seems like all the clients either imitate Slack, imitate Discord, or imitate hot garbage. I haven't seen any that try to be a simple, friendly replacement for SMS. I'm a software developer who uses computers all day, and I find the UX for most of the clients incredibly hard to use.
The only angle I could see to pitch XMPP/Matrix to people for non-philosophical reasons are that there's a more consistent experience across iOS/Android. The biggest shortcoming I think is visible to regular users is that there's feature degradation and missing information when iOS users have SMS conversations with Android users, especially in group chats.
For people who have successfully won family and friends to XMPP or Matrix, what was your pitch? What do you recommend others do to make XMPP or Matrix an attractive experience for a regular person?
Signal is incredible user friendly, privacy respecting, the gold standard for encryption, cross platform, etc. Yes, it’s centralized, yes it’s imperfect in many ways, but it’s easy and it’s pretty damn good.
If you want to help the people around you to become more involved in understanding and owning their tech, it has to be an easy and good experience. It has to be tangibly better, not just abstractly better with tangible downsides.
I use XMPP, but would never try to convince my friends and family to use it; it’s too complicated, the user facing apps all suck (Snikket and Cheogram are the best of the bad lot), and the incentives to use it aren't there. As you said, it’s just not attractive to a regular user, since it’s all around a worse experience than what they currently use. The one exception is that I do occasionally recommend XMPP for SIP access via jmp.chat to some of my more technical friends who have a tolerance for clunky user experiences in favor of privacy and affordability. I am holding onto an unreasonable hope that Signal or Whatsapp or others will consider XMPP+OMEO in the future to popularize the standard, but that is extremely unlikely.
Matrix also is an unfortunately terrible alternative to discord (even Element is a rather lacking user experience), so while I have pushed to move groups there before, I no longer recommend Matrix. I suggest signal or nextcloud as alternatives when possible; the remaining large groups who need the closed server forum style system are usually unlikely to move to Matrix anyway.
If this picture is accurate, then the promised land is only two steps away: (1) make available a reliable default Matrix server for normies who don't care about privacy; (2) polish up the UX of Element.
What am I getting wrong?
But I can't even decide on a matrix/xmpp client for myself, much less for family or friends.
If I cannot host it myself if I want to, or use it anonymously if I want to, then its not sovereign tech and not worth a second of my energy convincing anyone to use, especially when sovereign alternatives exist.
Matrix is by far the most usable sovereign option so it is what I switched my personal network to.
Seriously?
But XMPP doesn't have to be complicated. It just needs a popular server with a good client. Yes, there are good servers and there are good clients, but none of them provide a streamlined experience. It should be like Google Talk used to be: most people knew nothing about XMPP. But as a bonus, you get access to federated service.
Unless everyone in your circle is on HN all the time, you will probably fail to convince them to change.
The more likely outcome is that you wind up annoying everyone involved and don't get invited to the new discord server.
- Whether family or friends, always suggest it as a "fallback" for when "preferred service" is down and to use when discussion ultra-sensitive topics or sharing financial files. With time they may just stay connected to it if the friction to do so is low. It has to be their choice, not yours.
- What helps? Add more incentives such as perks that "preferred service" does not offer. No file size limits. No or few file type limits. No content filters. Add emoji's or gifs that align with their inside jokes and their style of humor. Keeping random people away is very important. Making your friends and family administrators or moderators and let them decide how it operates. Do not moderate or power-trip over your friends or family or they will leave. Limit rules to "Do not break the laws of this country in public chatrooms" and private chat rooms if you do not physically host the server. Database and file backups become even more important but they will feel in control of a thing. Have a keyword or code word they all learn means to go check the private platform that "primary platform" would not recognize. Maybe when they see "Turtle Farts!" they know to go log into your service.
- They may just stay on their primary preferred service. Every group is different and not every group will see the benefits of your fallback service. They may not appreciate the work you put into setting it up for them. Do not expect to get the friends of your friends and family to move to your service. They may not appreciate the OpSec value until "Bad Things"(c)™2038 happen to enough people. Just be there for when it does.
- If there are concerns that you would spy on them, consider instead using eJapperd or Prosody as you can implement OMEMO for individual and group end-to-end encrypted messages. Set up TLS fingerprint checks from multiple locations to reduce the risk of MitM attacks until XEP-0474: SASL SCRAM Downgrade Protection is fully supported and active by default on both servers and all clients. This is the only thing holding me back from setting up a public Prosody server as 0474 is still experimental. See [1]
- Avoid (block) federation on private servers for friends and family otherwise it is not a private server.
[1] - https://news.ycombinator.com/item?id=37955264
I have tried Matrix, XMPP (Conversations), Signal and even some Nostr clients but Delta Chat has by far the best UX and reliability. It has groups, channels and private messages, stickers and built-in video calls. My only gripe is that it doesn't have video messages or screen share like Telegram yet.
If you want to try it out you're always welcome to message me.
Did video calls work during the blackout too? I think calls should work like in the good old Skype days, pure P2P.
[1] (customize username, paste into terminal, then type "chat") .:. This is a hardened private fork of devzat. shout-out to quackduck if he still logs in here.
Useful commands to start with are "help", "cmds" and "rest". There is no censorship.It really depends a lot on what's going on that they want to block. Making it hard for people to do X is often good enough. For some things, making it unreliable is more effective than a complete block, because a complete block leads people towards circumvention but unreliability can push towards local alternatives instead.
While the Internet is cut off in authoritarian regimes, the intranet (note the difference) rarely is. The regimes have to preserve the internal network in the country because otherwise financial infra like banking will be down too. So a VPS or a computer connected to a public IP inside the country is all you need.
But to answer your question, Rocket Chat is the most noob friendly client.
I tried Snikket and ejabberd on the server and found Snikket way easier to use.
I haven't tried any Snikket clients because I'm tinkering with web apps to start and it looks like Snikket doesn't have a web client yet outside of the admin portal.
I really like that Snikket allows me to create invitations without relying on SMTP. I love having it just as a URL I can send however I want.
I wish I kept better notes on my Snikket onboarding because I did run into a few hiccups.
I find the concept of "Circles" unclear because I don't understand how it differs from regular users. Thinking about it more, I'm assuming the idea is that I might have a family group and a college friends group, but I don't want my dumb college friends messaging my mom even though they're all on the same server?
My more superficial note is that I find the admin UX a little rough. It feels a little early 2000s design where everything is a form submit when there could be more JS interactivity (and this is coming from someone who hates JS frameworks but likes minimalist JS like htmx). And there are four top-level admin actions, and one of them is "Invitations" but that seems to duplicate everything available to me under "Users."
Yeah, no web client yet, but we're working on a web app (it exists already, but doesn't do end-to-end encryption fully yet, also no video calls). My primary use case for Snikket was displacing things like WhatsApp where web usage is (in my experience) rare, so the focus has been on mobile apps.
Circles - yes, you got it. Initially we launched without circles, and some people complained they couldn't invite friends to their server without those friends mixing with their family members by default. I wasn't sure at first, but now even use this feature myself for e.g. a "Games night" circle. You can read more about the feature here: https://snikket.org/service/help/features/circles/
And yes, I totally get what you mean about the web dashboard. We're toying with replacing it at some point (partly because the backend is Python, and it uses over 2x the RAM of the chat server when idle!).
https://snikket.org/about/goals
kudos to that!
I have an XMPP server which works on a small server, it has been running for nearly 10 years with 0 issues. We are about 20 on it.
I didn't convince them, I installed the client on their device and told them "use this icon to talk to me". Then they realized they could talk to each other. They don't care about anything else.
What I'd like to see in an XMPP client:
On desktop:
- something lighter, dino is not bad, but it can use quite a lot of CPU - better theming, some people like bubbles, other prefer irc like - GIF picker, it could require a server side proxy I don't care, I just want it - better control when sending image (crop, quality...)
On mobile:
- better sharing (vcard, image with good control) - GIF picker - a few UI tweaks, like text colors and layout
Don't fuck with people's notification settings.
Perhaps read that again. Then appologize.
I do still stand by not fucking with people's notifications but you did not do that and I retract that.
I also periodically take advantage of news stories that trend like when discord was going to ID people, I made a point to bring that up to convert more people, and always get a couple new takers.
When something fails to work like group messages fracturing or big files not sharing well with iPhone users, I make clear the practical value of having our own control and resources as a social network.
I also try to make sure my server has useful bots, a small thing but every bit of utility and differentiation with proprietary services helps.
I share guides on how to get back in, one thing people get confused about is that they don't have to give PII but they do need to remember the home server URL and save their key and password. So making sure to have ready pointers and blurbs on how to login that you can share quickly is necessary because people inevitably get logged out, especially iPhone users get confused easily (for app store culture reasons I think) and need kind but eager assistance.
I try to make sure we have well moderated safe space e2ee rooms to talk about hard issues, and people do realize over time that certain things are more awkward to say digitally if you know it could be being surveilled or tracked, even the metadata.
I've also encouraged technical friends to run their own servers and federate, got a couple to actually do it which is a cool feeling.
It takes time (years), patience, and effort, but many little pushes will build a community.
> I also try to make sure my server has useful bots, a small thing but every bit of utility and differentiation with proprietary services helps.
Can you share more about this? I hadn't thought about this, but that's an advantage over SMS, though I don't have good ideas for bots my friends/family would enjoy.
> For that reason I bridge everything and always meet people where they are and constantly show off to them that even if they sms/telegram/WhatsApp/messenger/slack/discord/signal me then I get it in one app with no tracking or ads on my physical phone that I carry in my pocket.
How do you bridge SMS/WhatsApp to Matrix? Something like Beeper?
I didn't, that's not something you ask 'normal' people to do.
Matrix will work though. Element X is very polished. Same with FluffyChat. However, I still only bother with getting my immediate household to use it. A "family" chat is totally fine with me. And that let's me hook bots and agents up to it.
For a little plug... it's can very easy, in fact, to get a Matrix server set up these days, including full voice and video chat:
https://github.com/pkulak/barnaby-home
If small enough, group chats will work just fine with less struggle and overhead.
If larger, possibly.
NextCloud may do much of what you need.
I mean the team is still relatively small (around 20) plus external stakeholders.
I will look into NextCloud, thx.
A good FLOSS internal chat is Zulip, a passable one is Mattermost (who is better for many things, but being "Open Source Enterprise" is largely a no-go IMO.
Zulip+DocMost are Slack+Confluence. Zulip support calls as well, but via Jisti and they aren't much nice IMO.
Will look into Zulip, thx.
Signal just works. It acts like a feature rich messenger. XMPP/Matrix just isnt that good for the average person.
Some are higher information than others!
Some of my friends are geeks any way so they use it on there own (always brings me joy when i just meet someone and find out they use Signal, not this is how I choose friends though), and I use XMPP as my main messaging protocol (through a public server). But with family, it’s mostly WhatsApp unfortunately.
Show them the icon.
Listen to them bitch about the differences from what they’re used to, and inconvenience of “needing to check a second place”.
If it doesn’t work that way, or if the bitching lasts longer than 1 week to 1 month, you’ve bit off more than you can chew, abort.
Be someone they really want to be any to reach!
Never, ever utter the term “XMPP server” to them.
My pitch was simply that I will no longer be using surveillance capitalism products on principle, and I am willing to explain more to anyone interested or help anyone switch. Then I stopped using said services.
This is a lifestyle choice and those that love you will respect it just the same as if you went vegan or something. You do not need permission from others to make an choice about what you are or are not comfortable consuming in your life.
Talked to some people via intentional phone calls or in person visits and the ones that really want to have async communication with me signed up for matrix one by one. Now my family and inlaws are all on matrix with no algorithms or spies in the mix.
There are a number of former friends that are only comfortable communicating online with well known product brands even if they are being spied on and exploited. That is unfortunate, but it is a quick filter to see who actually respects your values and values real communication with you specifically, and who just wants an easy audience for their shitposts and conspiracy memes.
Try vibe coding your own app that your family and friends would install, and have this as the background communication layer.
Good luck!
Forget normal people. How are you convincing techies to use this. Obviously there are other open source E2E encrypted chat programs that are half decent, but i never understand how people are convinced to use matrix of all things.
I think that was 5 or 6 years ago, and I'm convinced the clients have somehow gotten worse. That may just be perception though.
I haven't bothered looking for new clients though since the 'vibe-coding era' has begun, maybe something else has come along.
Have you ever seen Plaid's TOS? They literally say you give them permission to spy on your entire financial/banking life for THIRTY yes 30 YEARS!! If you click accept on their usually required tos for whatever financial service you are using that no one reads. What do you think they do with that info? Well if you have seen the rise in prices its not due to inflation it is things like dynamic pricing and the salesperson knowing to the penny how much money you can spend TODAY. You tell the car dealer for instance you can only afford 50k but they know for a fact you have 55K, they are not budging and neither is any other dealer because they all have the same info.
That is just one example, and yes I understand that inflation is a factor but inflation did not raise prices 400% all across the board everywhere. Thats why its confusing when you see the governement saying inflation is bad but not terrible. They are not lying...precisely. They of course are not doing anything about regulating the price gouging and one sided "value extraction" or the open collusion of corporations through obvious third party sacrificial entities.
>GNU Affero General Public License 3.0 or later.
It's Affero. I'd rather use anything else.