XMPP (Jabber) – Decentralised, Open, and Federated Messaging

What is XMPP?

XMPP stands for Extensible Messaging and Presence Protocol.

It is an open standard for instant messaging and presence that works much like email: a user identifier contains a local part, an “@”, and a domain name (e.g. me <@> adamdistefano.net).

Multiple independent servers can communicate with one another, a design known as federation.

Why choose XMPP?

There are also projects that bridge XMPP with other services like IRC, Matrix, Telegram, and even Discord. While these bridges vary in stability (and I don’t use them myself), they allow you to centralise communication into a single XMPP client.

My Prosody service

I run a Prosody server at home on adamdistefano.net. Key features enabled on this instance include:

This server does not support public registration — if you’re not already on XMPP, please choose a provider down below under “How to try it”

One of the main reasons I run my own XMPP server is because it’s fun (maybe I am very boring). There’s satisfaction in understanding how these systems works end to end, configuring things exactly how I want, and being part of a decentralised communication network.

While I keep my server relatively low-profile, XMPP supports service discovery and public directories. This allows people to find chat rooms, file upload services, and other features that federated servers may publish.

I would also like to note, messages sent using OMEMO or OpenPGP encryption cannot be read by me or anyone else, including the server. This ensures that conversations remain truly private and accessible only to the intended recipients. Encryption is handled by the device or client you are using, and my XMPP server merely facilitates the delivery of messages.

XMPP in the real world

XMPP has been adopted by a range of organisations, currently (from my brief research) it is being used by:

Previously XMPP was used in:

Those were great times. Back in 2006, Google Talk was federated via XMPP, meaning you could sign into your Google account and use gTalk to communicate with any XMPP server, as this person reminisced:

“For some glorious years between 2006 and 2013 (Hangouts), this was indeed possible. I run my own XMPP server and I used to chat with GTalk users all the time. For literally years.”

In 2025-03, the European Digital Markets Act (DMA) classified Meta’s messaging platforms (Messenger, WhatsApp) as “gatekeepers”. The XMPP foundation wrote an excellent open letter, outlining how Meta’s proposal to remediate their status as a gatekeeper via proprietary API’s and restrictive NDA’s falls short of any sense of true interoperability. The letter also links out to a more technical section.

Although this will probably lead to nothing (as nothing ever happens), I am hopeful for a world where we go back to open standards and interoperability rather then the service silo’s we’ve put ourselves in.

How to try it

  1. Choose a provider – the community maintains a list at providers.xmpp.net. Select one that offers OMEMO and push notifications.
  2. Install a client
  3. Create an account, then add my address above to start chatting!