An independent guide to Jabber and XMPP
One address, one stream, one open standard
Jabber grew up in 1999 as an XML streaming protocol, went to the IETF in 2002 and became XMPP. This site explains what survived, what changed and what still works, from the RFCs rather than from memory.
Edition 2026 · Protocol · History · Servers · Clients · Standards
01-05The five layers of the guide
Five ways into the same protocol, from the shape of a stanza to the process that turns an idea into a published extension.
THE INDEXEvery essay, by date
Everything the guide has published, newest first, with the date it was written.
-
· Protocol
Message, presence and IQ: the three stanzas
Everything an XMPP client does is built from three XML elements. Knowing which one carries what explains most of the rest.
-
· Protocol
How a JID is built, and what breaks it
An XMPP address looks like an email address and is not one. The differences are written down, and they matter.
-
· Protocol
Presence, rosters and the subscription dance
Presence is not a status message. It is a routing decision the server makes on your behalf, from a list you own.
-
· History
From jabberd to the XMPP RFCs: a timeline
Not quite six years separate a personal announcement from an IETF Proposed Standard. Each step is dated, and each one changed something.
-
· History
Who owns the name Jabber
Two names, two owners, one network. The confusion is old, documented, and easy to clear up.
-
· Servers
ejabberd, Prosody, Openfire: how they differ
All three speak the same protocol. Choosing between them is a question of what you are willing to operate.
-
· Servers
The DNS records a federated server needs
Most federation failures are DNS failures. The records are short, the rules are written down, and the order matters.
-
· Servers
Encryption on the wire: c2s, s2s and TLS
A message crosses at least two connections. They are secured separately, and only one of them is under your control.
-
· Clients
What to check before you install a client
Two clients on the same account can behave like two different products. The difference is a short list of extensions.
-
· Clients
Why mobile XMPP is harder than desktop
The protocol assumes a connection that stays open. A phone assumes the opposite. Everything else follows from that.
-
· Standards
How a XEP becomes a standard
The number on an extension tells you nothing. The status line above it tells you almost everything.
-
· Standards
MUC and MIX: two answers to group chat
Group chat was bolted on twice, twenty years apart, and the second attempt starts from a different idea of who a member is.
-
· Standards
OMEMO and end to end encryption
Transport encryption protects the hops. End to end encryption protects the message. They are not the same promise.
-

The reference page: message, presence and IQ
Three stanza types carry everything else on an XMPP stream. Every other essay on the site comes back to this page, because every feature is built from these three shapes.
Layer 01 · Protocol
Presence & Protocol is written by a small editorial desk, not by the XMPP Standards Foundation and not by the owner of the Jabber trademark; how we work and what we check is set out on the about page. If you read one thing first, read the reference page on the three stanza types, then come back to the protocol layer for addressing and presence.




