24 points mtlynch 1 hour ago 16 comments
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?
yepyoukno 1 hour ago | parent
Try vibe coding your own app that your family and friends would install, and have this as the background communication layer.
Good luck!
bawolff 21 minutes ago | parent
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.
MattJ100 1 hour ago | parent
mtlynch 59 minutes ago | parent
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."
MattJ100 43 minutes ago | parent
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!).
cf100clunk 32 minutes ago | parent
https://snikket.org/about/goals
kudos to that!
Bender 1 hour ago | parent
- 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". 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 by both servers and all clients by default. This is the only thing holding me back from setting up a public Prosody server as 0474 is still experimental. See [1]
vekntksijdhric 34 minutes ago | parent
eesmith 39 minutes ago | parent
SoftTalker 16 minutes ago | parent
dlcarrier 25 minutes ago | parent
vekntksijdhric 21 minutes ago | parent
Apreche 20 minutes ago | parent
fishgoesblub 10 minutes ago | parent