zap’s notes

Bluesky avatar

Zaptor Zap

@zaptorz.app

disillusioned micro blogging℠. block game administrator. chances are if i'm posting anything it's just a funny game clip of some sort

Notes on XMPP


Due to a certain controversy regarding a specific chat platform and its approach to "teen safety", I recently(late Feb 17) spun up an XMPP server to give it a try. Catch me at me@zaptorz.app! Overall my impressions are pretty high, but I have some notes/bad news to break to any prospective Discord abandoner.

Emote Pandemonium

I use Debian. It's not particularly cutting edge, as is its reputation. Somehow, my system ended up with Pidgin, a particularly crummy chatting application that just-so-happened to literally support AIM when it still existed. Said support is self-evident considering the end user experience.(I had tried https://nina.chat/ when it was still full-force available, so the AIM experience is fresh in my mind) Since it was installed already, this was my first exposure to XMPP use.

Pidgin features support for "Custom Smileys". It accomplishes this with XEP-0231: Bits of Binary, which means other clients that support this standard should simply receive them. This standard is wholly clientside; your XMPP server doesn't need to know or particularly care about the emotes at all. Mine had 52% complaince when I first sent and received custom smileys from a friend. It's just binary blobs of data in the message, meaning the limits are a little tight, but well within reason for custom inline emojis. I haven't double checked, but I'm sure compared to the size of every Discord message you've ever sent it doesn't compare. It's kind of a dream solution; only problem is that modern clients, well, don't support it at all.

image

(Guess which ones of these are considered most relevant to modern day usage of XMPP? I'll give you a hint: the one that sent an emote got said functionality at least 12 years ago!)

To misplace my abstract and assume one thing of a majority of Discord users: support for this feature is considered mandatory of a replacement. I'm certain I've spoken to people who would see "no custom emotes" and write off the protocol entirely, so it's upsetting to look into git issues regarding it and see a primary contributor confusingly go "Can't you just use Unicode Emoji? Closed."

(Sorry for ranting at open source. I know, it's a thankless job, and for what it's worth, Gajim is perfectly cromulent software in most other regards. It's what I'm using daily for the time being.)

It's not all doom and gloom, I suppose. There's a literal standard for Stickers (signed 2022) instead of "here's some binary data figure it out". I would expect these apps to support them as it's much more modern, but 4 years is kind of a while... That being said:

XMPP still can't replace your spaces

I'm reminded of everyone who ever suggests that IRC can be a viable replacement to Discord. Said idea is so laughably unrealistic to me that I have a whole laundry list of reasons. I'll spare you the additional ranting. The truth is, XMPP still hasn't moved that far in regards to supporting a topic of discussion between thousands of people on an instant messaging scale. Better than IRC in many regards; no doubt about it, but still unruly in 2026.

For example, I joined Gajim's MUC (Multi-User Chat) to ask about custom inline emotes. I.E. why this actual AIM client supports them but Gajim doesn't. Some benefits: People had profile pictures • They couldn't just fetch my IP address after asking the server nicely • They were allowed to Reply to my question • The answer was actually pretty speedy • I didn't try but I have no doubt that I could just upload pictures directly • I could even edit my message(subject to reasonable limitations). On the other hand: It took like 30 seconds to sync about 400 users • After the wait, I got to enjoy a crisp 10 or so messages of context before I joined • The operators make a log available here, but seeing the state of things(no search • no pins • no meaningful roles • etcetera), this clearly will not do as a Discord replacement.

XEP-0503: Server-side spaces is a standard that gets brought up often when comparing XMPP to Discord(hey, that document even calls Discord out by name!), but I'm concerned it doesn't bend the needle enough. Like, there needs to be much more tangible improvements to the MUC experience (E.G. in-app permanent history • emotes (duh)) that I'm not hearing here. I think I've seen some herculean efforts to amend (i assume) these pain points by Movim, but I'm concerned it's going a little too beyond a Discord replacement(not really trying to join another blog site at the moment...)


I'll remain on XMPP for the near future, at least(if not forever, since Trackmania² (among others) literally uses it). What it represents is much more wholesome than every other Discord clone I've seen of late. It well and truly is a hotbed of interoperability and a champion of selfhosting(besides certificate trouble, Prosŏdy was very much so "install and done"). My feelings regarding recommending it remain complicated, if not just because I don't know what public instance is worth registering to. I'm not trying to become a chat provider here! As before, you can add me with this link.