55 comments

[ 2.9 ms ] story [ 118 ms ] thread
I really like that xmpp is experiencing a sort of revival at the moment.

Not maybe in terms of user-base, but Conversations for android is really good, on iOS ChatSecure has some issues, but is usable. OTR encryption is being replaced by OMEMO, and that actually works. I can use and try out clients to my hearts content, with messages being synchronized between them.

That I can run my own server on prosody or ejabberd is really great as well.

And since we're back to "Hey can we you use Signal/Threema/Whatsapp/Viber ?" anyhow, it's actually relatively easy to slide in the next option:

"Hmmm, why don't we use ChatSecure ?"

Thanks everyone for making it happen.

Conversations reached a point where I can easily install it on my family member phones and they feel it's a "normal" messenger. This doesn't sound like a high bar to reach but surprisingly it didn't happen before (at least for XMPP).

Recently a spin-off of Conversations - Quicksy was introduced [0] [1] that makes the entry even easier as it offers phone number-based contact discovery. From my experience people are used to quick on-boardings and don't even want to think about things like "username" and looking for contacts.

[0]: https://quicksy.im/

[1]: https://play.google.com/store/apps/details?id=im.quicksy.cli...

> it didn't happen before (at least for XMPP).

It was the niche of niches but the Nokia n900's standard built in xmpp client could do voice/video/filetransfer with a gnome desktop's standard messaging infrastructure (telepathy or something?) in what, like 2010 ?

But, besides that, I get what you're saying about "normal" messengers and conversations nowadays.

So good. Thanks Mr. Gultsch[0] !

[0] https://gultsch.de/

While I understand the concerns and I appreciate all of what Conversations' author is doing for the community, other clients have also seen significant improvements lately.

Gajim[0] has practically come back from the "dead". There is a huge difference, UI/UX-wise but not just, between pre and post 1.0, (1.1 at the time of writing, 1.2 coming).

There is also dino[1], a nice and simple desktop client, and converse.js[2], a fast-developing web-client.

Movim[3] and Salut-à-Toi[4] are also putting in a lot of work on the social network side.

[0]: https://gajim.org

[1]: https://dino.im

[2]: https://conversejs.org

[3]: https://movim.eu

[4]: https://salut-a-toi.org

Edit: Added conversejs

For sure! I use gajim as my main Desktop client.

And thanks for the link to salut-a-toi, I hadn't heard of it.

I still prefer pidgin, but it needs a lot of love to make it a reasonably modern XMPP client:

- https://github.com/danielkraic/Pidgin-XEP-0136-plugin adds XEP-0136 (needs "mam_archive" on prosody)

- https://github.com/gkdr/carbons adds XEP-0280 (Carbons)

- https://github.com/Junker/purple-xmpp-http-upload adds XEP-363 (HTTP uploads)

- https://github.com/gkdr/lurch adds XEP-0384 (OMEMO)

- https://github.com/noonien-d/pidgin-xmpp-receipts XEP-0184 (message delivery receipts)

The real pain for Pidgin is the complete lack of XEP-313 due to Pidgin's aged logging system, and I would really like to see a working message sync for Pidgin :(

EDIT: https://github.com/CkNoSFeRaTU/pidgin apparently has had XEP-313 patched into Pidgin for years now. Combined with lurch and Carbons, message sync is working fine.

I wish Pidgin would just disappear. It is absolutely unusable without all these plugins in a modern multi client world, and most users don't know they need them.

The delivery receipts issue is a decade old [0]! Libpurple is a mess to implement all the modern features, because it tries to support the baseline of so many different protocols.

[0] https://developer.pidgin.im/ticket/6940

I wish it would reborn, that I agree on. Disappear - no. Please no. I still need to connect to 3-4 systems, and the last thing I want is 3-4 messengers, especially if all of them are webapps. Pidgin is still the only thing standing between me and total messenger madness.
> So good. Thanks Mr. Gultsch[0] !

It's interesting to look back at the role Mr. Gultsch played in this XMPP revival. He correctly identified features missing or present in other messengers (e.g. offline files or good mobile connectivity), wrote appropriate specs (e.g. [0]) and made sure they went through XSF, implemented them in his client, helped implement it in other clients and implemented some of them in servers, or procured server developers to do so. Then he made sure that server administrators have an easy way to check compliance that ultimately led to SSLLabs-like online checker [1] that was a GSOC project that he also mentored.

Quicksy was conceived to test if the idea of phone number-based contact discovery would bring more people to XMPP. He's not just talking about stuff, he's actually implementing his ideas to check if they work!

This proactive approach is something that truly amazes me, especially when the default response of many people is cynicism and ranting that "the world is bad".

I don't want to downplay role of other people here but I'm 100% sure if it wasn't for Daniel's involvement we wouldn't be talking about XMPP today.

[0]: https://xmpp.org/extensions/xep-0363.html

[1]: https://compliance.conversations.im/

I gave Jabber another chance a while ago... using both ChatSecure on the phone and Gajim on the computer (phone+computer logged in on both ends of the conversation). Unfortunately it was a complete failure. Message arrival was flakey. Some messages arrived only on the computer, others only on the phone. Conversations were sometimes one-sided, with one half on phone, other on computer. Not usable for chat. All around, I have to sadly say (after 15+ years of Jabber use) that this is what I'm used to with Jabber, and that I honestly cannot recommend it to friends :-/
My wife, some of her friends, her parents, my parents and some of my friends all use XMPP. Mostly Conversations and I use Converse.js as well.

I haven't received any complaints yet, and I've been hosting the XMPP server which most of us use (since about 2014).

I haven't seen anything like this in ages; what server and clients were you using? Between the history feature most things support and message carbons you should just get every message everywhere reliably (and that's what happens out of the box for me with most setups).
> on iOS ChatSecure has some issues

I was looking into iOS options to recommend to friends and ChatSecure seems rather dormant. https://monal.im however is actively developed and the author is very friendly and responsive.

Cake!

As I said in another thread, glad to see the community is still active.

Speaking of protocols, aside IPFS, what open protocols have come out in the last 5 years?
HTTP/2, though SPDY is a bit older. HTTP/3, though QUIC is a bit older.

DNS over HTTPS?

I have been looking into building a XMPP server and client lately. Mainly cause the ones out there aren't super great.
Is there something you're looking for specifically? Just asking, because xmpp is currently my thing, and some of the interesting bits and tricks sometimes are a bit hidden, but there is lot's of stuff possible that I didn't think would be.
What XMPP stuff are you currently working on?
Triaging bugs in ChatSecure without regular access to an iDevice.

I am mostly on the admin/user side of things.

Before doing that, please consider contributing to an existing project first. There are many out there and they'd love more contributors.
Which is the best XMPP server?

For the server mentioned here...

OpenFire = written in Java

Prosody = Lua

Ejabberd = Erlang

Prosody is small and works for most people. Ejabberd is what powers production servers of bigger operators, it's also used in MMORPGs.
Not sure if it's the best, but I tried openfire, worked great for my use case, it was easy to deploy on k8s.
I love Prosody. It took five minutes to set up and it's been flawlessly running ever since. We use it for internal company talk, pasting code, sending files. If you don't need 1M+ clients it's great.

I also set up an ejabberd instance for a client years ago when Prosody was not a thing but it's more complicated to set up. They changed the config file from Erlang to YAML a while ago but it's still complex. But it's nice it has a web interface to create users and easier to not get bothered about it once it's up and running. Ejabberd can handle a massive number of clients.

Here's an older discussion about XMPP self hosting:

https://news.ycombinator.com/item?id=8783794

I cannot agree with this enough. So many resources wasted trying to replicate what's already been done, but this is not an issue with XMPP only.

There are still lots of fun challenges in many clients and servers if that is what you're looking for.

I wish Hacker News would do a better job of insulating me from feelings of senescence. This makes me feel damn old.
This is great news. I'm finishing a messaging app for a non-profit and I decided to use xmpp (openfire) for the backend and it was really a time saver (the full stack is React Native (typescript), ruby (jruby + sinatra for api), openfire for messaging). I really like how easy is to extend and customize xmpp to suit your needs. Here's to another 20 years!
This sounds exciting! But I guess this is closed system and it's not possible to see at least a screenshot?
I can share screenshots for sure. I was thinking of opensourcing the project after it was done, but will need some time to clean it up a bit. I will for sure write a blog post about it when it's done (next few weeks)
Very cool! I'll definitely watch you home page for new posts. Thank you :)
I’d say that it feels like just yesterday, but it totally feels like decades ago :)

I’m very lucky to still be close with so may of the truly amazing individuals that helped build Jabber, and over the years deeply honored by all those that spoke to me about how it inspired them.

While at the surface it may seem like all of our efforts had little impact on the big “messaging silos”, I am most proud of how much Jabber/XMPP has made it easy for anyone to build/host/extend a messaging and presence service. Twenty years ago the concepts and architectures were opaque, now they’re commonplace.

Happy Birthday!

How crazy is it that we not only know each other in real life because of Jabber, but also work together. :)

I have many, many fond memories of hanging out on the old IRCs with the Jabber crew. 20 years! Geeze.

Hey Jeremie! It's really awesome to have you here!

I've tried to dig up some more historical background besides of the Slashdot announcement, but failed. Do you happen to have an old copy of the 1999 changelog / code base (maybe a backup of the CVS or SVN server), just out of historical interest. The archive.org history only goes back to around 2004.

Also it's really amazing how far you've been looking into the future back then...

Jeremie, I'm watching your talk about telehash on InfoQ and I wonder what happened to the project? Is it worth pursuing ... ?
Telehash has been waiting for the right time to get focus again. We've been very busy with our other work currently, but it is in no way forgotten. We're hoping to come back around to it soon. Message us on our Slack if you'd like to chat more.
I remember decades ago seeing it come out and thinking we already have irc and email and chat. Why throw in "with xml" and think it's going to be better.

Shows what I know. Way to stick with it. :)

No, you were right. The XMPP protocol is awful.
We need to move away from Hipchat at work and really wanted to use xmpp, but was super let down by the iOS clients, it can't be used in production.

Android - thanks to Cobversations and Xabber, is really ok, PC is ok (Gajim), but we couldn't migrate due to the 3 iOS users in the team. Duplicate msg and all sorts of weird behaviour and errors made it a no go.

We ended up with the shitty MS Teams in the end; comes free with our office365, has working notifications across platforms and can do messaging and file transfers without issues.

I dream of a future where xmpp is an option.

People who have to gain from that: please fix the iOS side of things.

I know it's not open... but I personally really like Teams, especially if you use some of the integrations, wiki and files.
I hate it, I find the UI clunky and slow. Most annoying is having to fake an Edge user agent to get incoming calls to work (using Chrome on Ubuntu) but having to use the normal UA at other times as it breaks my messaging history otherwise
How would you compare xmpp to matrix? Are they both similarly secure, distributed, and open source?
From what I see, XMPP is "message delivery" while matrix is " eventually consistent global db with pubsub semantics"

The difference becomes relevant when you have multiple or offline devices. XMPP may not deliver messages to some of the devices (for example, if message carbons are not supported by client). Matrix will not drop messages -- it may take some time, but eventually all devices will see all the messages.

And 20 years later, this is published on an XMPP based blog engine, quite a nice way to celebrate :)