XMPP

Extensible Messaging and Presence Protocol ( XMPP ) is an open messaging standard for cross-platform instant-messaging interoperability, previously supported by the Google Talk messaging service and Twitter, and something you can support on your personal site.

Why
By supporting XMPP on your personal site, you can use your own domain as your XMPP identity to chat with other folks using XMPP, without having to register on another service!

How to make an XMPP identity
You can either register your identity on a free service, or you can set-up an XMPP server on your site and use that to present your XMPP identity.

Services:
 * https://movim.eu/
 * https://www.jabber.org/
 * ...add more here!

Self-hosting:
 * Getting Started with Prosody

How to setup XMPP on your site
(stub)

For developers, see:
 * 2021-01-25 : Run your artisan instant messaging service for your friends & family

Peter Molnar
has been running his own XMPP server on his domain since at least 2021 per https://petermolnar.net/article/xmpp/index.html

Aaron Parecki
added XMPP support to his site in 2022-??-?? for use in IETF meetings.

Jacky Alcine
uses movim.eu since 2021-??-?? for personal use. In 2022-03-18, he connected it to jmp.chat to allow for bidirectional text message support

Service Examples
Social-networking applications built on XMPP:

Movim

 * Movim

Salut a Toil

 * Salut à Toi provides a gateway to expose the content on the web, with public access for public content.

Open source

 * stanza.io
 * XMPP-FTW

Standards
The core part of XMPP is now an IETF RFC: RFC-6120.

PubSub
XMPP has a PubSub protocol for social-networking, as defined in XEP 0060.

URIs
All content throughout the XMPP network has a unique URI. Here's a list of common URI representation of resources:
 * user: xmpp:user@host
 * PubSub node: xmpp:pubsub.host?;node=nodeName
 * PubSub publication: xmpp:pubsub.host?;node=nodeName;item=ae890ac52d0df67ed7cfdf51b644e901

Issues
General issues:
 * massive spec
 * no one has ever fully implemented it
 * there's no comprehensive (or even feature covering) test suite
 * everyone who tries to implement it, only ever implements a subset of it
 * interop requires testing with every implementation you want to interoperate with (instead of just with a standard test suite)