I'm considering making an account on either Matrix, Delta Chat, or an XMPP server, and I'd like to get some opinions from my fellow Geminauts.

๐Ÿš€ jsreed5

May 01 ยท 6 days ago ยท ๐Ÿ‘ gritty, stack, norayr, xavi, ghost, Homer, LeafBeef

13 Comments โ†“

๐Ÿ‘ป darkghost ยท May 02 at 01:05:

So I have some opinions having self hosted an XMPP server, Matrix server, and a Mattermost server for my family.

All self hosting options have weirdness with notifications where notifications can arrive much later. The system on Android seems broken. Some apps try to get around this by being resident and polling the server like the email days of old (e.g POP3.) I've not found anything that works well. Even Signal has this problem.

XMPP server was prosody with a lot of plugins. It needs 3 or 4 ports open. Client on Android was Conversations because it's the most advanced. It used to be easier to use with custom server but now tries to direct you to its server. It's also not free outside of fdroid.

For Matrix I used the reference home server as it was the most advanced. It only needs one port. I used Element on Android. It was a pain to set up both, partly due to the self signed certificate, partly because it was all Python. I never integrated it to start on boot so it was easy to take down especially in those days with flaky power. I hated that it all felt half finished and I hated that it was all in Python. It seemed overkill for the 4 of us and I never got many features working because documentation didn't exist.

Mattermost was the official server and client. It only took one port. This one was also a total pain to get going on each client again because of a self signed certificate.

Mattermost was so bloated. I had a cheap 0.5Mbps upload and this thing saturated that if 2 people were using it at the same time. For text and images. It was also way overkill for the 4 of us, really designed for teams of around 30+.

It's sad to say I don't like any of these for various reasons. XMPP is too legacy, favoring a continuous connection like on a desktop computer. On a cell phone there are plugins but they kind of work. It's the one that annoyed me the least but sending media was hard to do well and is definitely bolted on.

Matrix was more advanced and able to handle cell connections better and media better. It was more bloated and, as of around 10 years ago, half finished with crappy documentation.

Mattermost was as good as Matrix for features but bloated. I used this one for maybe a month because client onboarding was arduous.

If you're just a user, I dunno, Matrix is probably the best current option.

๐Ÿฆ‚ zzo38 ยท May 02 at 02:03:

I do not use any of them and I prefer IRC, which is workable even without specialized software (although having specialized software is still helpful, e.g. for automatically responding to pings and for other features).

๐Ÿฆฅ aRubes ยท May 02 at 08:19:

regarding using both xmpp and matrix as an ordinary user, I find it convenient to use both. I use them both for when I need some technical support from a community around an app. For example, openSUSE linux advice can be found in their many official matrix rooms. I use a matrix account on the flagship server, matrix.org. magicbroccoli.de is a good provider of xmpp accounts.

๐Ÿš€ stack ยท May 02 at 12:10:

What an effing nightmare, @darkghost... But sounds about right. That's why I pretty much stopped using computers with the exception of Gemini, phone (no social media) and writing code.

The last time I set up an FPGA tool chain it was kind of similar - multiple Python versions with scripts that step on each other all over, hidden directories with gigabytes of crap, binary blobs, multiple versions of what looks like standard lib directories, etc. And that's on Linux.

๐Ÿ™ norayr ยท May 03 at 02:17:

@darkghost who do you want to send you the message then, if you don't want your app to be connected to the server?

ios devices work like that: if xmpp app is in foreground, it is connected, it receives messages instantly.

as soon as the user sends it to background, it gets disconnected from the internet.

i havent fully understood what is the workaround, though i have added mod_cloud_notify on my server and somehow configured it so it works.

my understanding is that the ios app 'monal' developer set up their own server. that server receives messages and sends to apple notifications, that apple forwards to ios device.

where is the decentralization then if apple has to send notifications?

๐Ÿ™ norayr ยท May 03 at 02:24:

the beauty of decentralized xmpp communication is in that both users are connected to some servers, and lets say when i chat with my friends who also self hosts, our messages don't leave our country, our town and sometimes our isp.

why does google or apple need to know about my xmpp communication to send me notifications? even when it doesnt know content, it knows activity.

there's

โ€” https://dontkillmyapp.com

website that explainn how to whitelist an app from being killed.

so you need to stay connected to the server to get the message.

and it in good.

and yes server can't connect to you usually, because you have no real ip. the connection must be initiated by the client.

when the pipe is established, then server can send data via that pipe. but server can't connect to the client to establish that pipe. the client needs to connect so that the pipe is established.

this is not specific to xmpp, but to how we usually use internet.

๐Ÿ‘ป darkghost ยท May 03 at 10:57:

Yeah, I mean I get it. Everything has to go through Apple or Google for push notifications to work or else it is connected to your infrastructure and handles push on its own. I've got spotty internet here in the sticks so the cell dead zones are numerous and the constant disconnect reconnect is something the servers can't seem to handle. Messages get dropped, notifications vanish for hours even after contact is reestablished. Signal even struggles on WiFi and that I really don't get, often relying on me to open the app and check. Instant* messages.

*Terms and conditions apply, instant is not a guarantee of timely delivery, void where prohibited, see store for details.

๐Ÿš€ devoid ยท May 03 at 16:26:

I heartily recommend XMPP

๐ŸŽต xavi ยท May 03 at 21:16:

- I self-host XMPP with Prosody. It is lightweight, few dependencies and works fine. Both Matrix and Delta Chat feel like NIH syndrome to me, and do not fix anything broken with XMPP but rather cause even more fragmentation. Matrix is heavily centralised towards matrix.org for some reason, which is bad for an allegedly federated protocol.

- I use XMPP primarily, and Matrix for some public channels.

- XMPP: Dino, Conversations. Matrix: Element web.

- XMPP: self-hosted. Matrix: please, anything other than matrix.org.

btw, if you have any questions about XMPP, my JID is xavi92@slcl.privatedns.org

๐Ÿ™ norayr ยท May 04 at 06:06:

let me also share my thoughts.

i have used xmpp always, almost since its creation.

it is a great community governed protocol. it has a core and extensions. extensions get submitted for review and voted upon.

then app or server authors implement them.

it is practically a universal communication protocol.

everyone can extend it for their custom needs, write a client that support an extension, then use any server to pass data in between two or mone clients.

i think http was a mistake. maybe gemini was too.

humans naturally need communication, not tvs or radios.

the server should not be superior in any way, just the proxy, data broker, that protects your activity.

it is possible that you have already used xmpp without knowing.

when the companies were setting up their chat services, very often they just used xmpp: many good open source servers already there, many good clients too.

twenty years ago i have worked in a european big company that had an ambition to be sort of european google, and their messaging was of course xmpp.

whatsapp just took xmpp, existing server implementation, replaced usernames with phone numbers, closed "federation" (decentralization), gathered everybody's addressbooks and that's it.

people were able to connect to whatsapp by using other xmpp clients and whatsapp was furious about not being able to forbid it.

google talk was xmpp. google had "don't be evil" slogan back then and the nerd culture was, if not dominant, but was around and alive back then in their offices.

i was naive enough to bring people to google, because i knew: i will be able to chat with them without having a google account.

i still have screenshots of my openmoko phone with pidgin and many gtalk contacts.

i was able to use the xmpp feature, to see which devices the google person was connected from: phone, browser, and i was able to send them message to the device i wanted to. that is an xmpp feature that some clients support, and my gtalk contacts were surprised i can send messages by choosing where to send.

now i understand they haven't even noticed, or have forgotten i wasn't talking to them by not using a google account, but my own server account.

when two major russian companies (i don't even want to mention their names to not advertise in any way) opened their chat services, they again used what? xmpp. because you don't need to invest much in r&d, it is there, mature protocol, good servers, just install and use.

those both companies also took an open source well known client and replaced the name and logo.

of course being capitalistic pigs they have forbidden the federation.

it was possible to send email from one of those services to the other, but not chat messages.

internet would be a much better place if xmpp took over several years earlier, and internet users would have get used to the idea, that as well as email, there is no reason why chats should not be federated and decentralized.

so, of course you see i love xmpp.

i have tried matrix.

matrix protocol is developed and controlled by the company.

i long ago gave up hopes any company may do something good for us.

basically there's only one server implementation from them, and one client.

two of my friends tried to selfhost matrix. both gave up. it is designed in a way one must have lots of resources to store lots of irrelevant for their server data.

so i consider it less "democratic" in many ways.

that one client from them might have more expectble by contemporary user ui/ux, but i don't care.

for me one company that controls the protocol is too much power in one hands. and not being rich enough to run a matrix server is another showtopper.

i run an xmpp server on a raspberry pi 1, the 32bit version with 256m of ram.

it's not possible with memory and space hungry matrix.

on deltacht: initially if i understand correctly, it is a chat like client for email.

well, okay. nothing against it. many different servers can be used then. one can install postfix or sendmail or opensmtpd.

just like for xmpp one may choose to run servers written in different languages.

but never used deltachat. maybe i will one day.

what do i use for xmpp?

well for android phone i suggest to get an app called 'conversations'. on fdroid it is not paid, but you can support devs by buying the app on play.

for desktop: there's dino, well, what contemporary user expects from such a program. and gajim is feature rich. both aren't my favourite, but i think for a novice or generic user those are fine.

there's unofficial dino build for windows as well, recentry updated, tell me if you need it, i know where is it on the internet.

for macos beagle works fine.

one can use movim in the browser and can save it as progressive web app.

on account providers:

it is interesting that recently some xmpp chats just ban big provider domains. also ban domains known for public registration.

when you have an account on a small server, that means you are more trustworthy. someone knew you and opened an account.

if you're coming from a public big server, you may spam or misbehave.

so i don't know what to suggest.

there are lists of xmpp servers with open registration. or conversations has their own domain: conversations.im but be aware some mucs (multi user chats) you won't be able to join because of that.

๐Ÿ™ norayr ยท May 04 at 06:26:

one more thing that was well designed: prevention of man in the middle attack.

i have heard a story of someone's grandmother: she would take the landline phone and talk to friends of her daughter presenting herself as the daughter. their voices were sounding similar and friends would not know.

how do we know we talk to someone? well they are authorized to the server.

but nowadays we do e2ee, so we also encrypt for them. so we need their public key to encrypt for them.

with contemporary clients like dino and conversations you can share your public key and account via qr code.

or you can read someone's qr code with a camera.

or you can verify it manually and set as trusted.

then if someone else figures out password of your contact and writes to you, your client will indicate it.

if they use e2ee, your 'conversations' app with default configuration will accept it, but warn you: 'blindly trusted new public key from...' - so you know your contact is connected from a new device.

the incoming encrypted messages will be marked with a closed lock, not shield.

some paranoids forbid blindly trusting keys and manually review always.

๐Ÿ‘ป darkghost ยท May 04 at 15:09:

I would agree that XMPP is the superior protocol here because it is fully open. It is to instant messaging what email is to electronic mail. It's a protocol not a platform. I remember using prodigy mail back in the day before they were on the internet and you could send messages to anybody using prodigy mail. It was platform vs protocol.

โ„ ghost ยท May 05 at 01:25:

I use XMPP and Matrix. They both work fine. If you want to join, the first thing I'd ask is what your friends use, because you should use that one. Second, if you're self-hosting, XMPP demands much less (and lets you handle video separately, when you're ready).