XSMP is a protocol for building peer-to-peer, federated social media systems.
The XSMP protocol is divided into four main areas:
- XSMP Messaging - Specifies the message structures that make up a user's immutable social history.
- XSMP Identity - Specifies how X.509 certificates work with XSMP.
- XSMP Transport - Specifies the gossip protocol used to exchange XSMP messages between nodes.
- XSMP Discovery - Specifies how XSMP nodes find each other.
XSMP exists to fulfill the following goals:
- Nobody but you owns your social history - Your social history should not belong to a corporation. Your social history should be portable and you should be able to manage it directly if you wish from your own computer.
- Social systems should not be all or nothing - Social systems should work together to share your social profile, not carve it up and lock it away in walled gardens and data silos. Social systems should be federated and forced to compete on quality of service, not quantity of users.
- Users should only be as public as they wish to be - How much you share and to whom you share should be completely in your control. Users should have fine-grained control over where their information is used and over who can see their content.
- Users should be as anonymous as they wish to be - Users should have complete control over how much or how little of their identity is available to others. A user should be able to actively participate in a social setting without revealing anything at all about themselves.
All XSMP specification documents are licensed Creative Commons 4.0 Attribution Share-Alike
Why share-alike? I believe the specification of XSMP should be open for all to read. I also believe that to preserve the open nature of the platform, all derivative specifications must also be open for all to read. Implementations of this specification are free to license their source code as they see fit.