The Next Generation of XMPP on the Web

The Situation


XMPP

XMPP is amazing federated, realtime, messaging system

Its mature, stable, and secure

XMPP uses XML so it can be extensible


The Browser

Developers want to build realtime apps quickly & easily

Browsers are all about native JSON

Web developers have an aversion to XML

XML != JSON

...its non-trivial to translate without losing extensibility

We have a problem...

We end up creating custom protocols

and custom protocols lead to...

SILOS

But what if...


we could build interoperable apps as easily as we could another silo?

What if this...



    <message to="all@people.land/britain" id="1" 
             from="richardIII@royal.ty/ground" type="chat">
        <body>My kingdom for a JSON-based interface!</body>
    </message>
    

Could become this...



    {
        to: 'romeo@shakespeare.lit/home',
        message: 'O, XML, XML! whereart art thou XML?'
    }
    

This publish...



    <iq type="set" to="pubsub.example.com" id="1">
      <pubsub xmlns="http://jabber.org/protocol/pubsub">
        <publish node="blog">
          <item>
            <entry xmlns="http://www.w3.org/2005/Atom">
              <content>I got tired typing this!</content>
            <entry>
          </item>
        </publish>
      </pubsub>    
    </iq>
    

Simplified...



    {
      to: 'pubsub.example.com',
      node: 'blog',
      content: {
        atom: {
          content: 'So much quicker and easier!'
        }
      }
    }
    

What if we then discovered all the extra features we had available?


  • Federation
  • Presence
  • Feature discovery
  • Chat related features
  • Pubsub
  • More...


All on open standards and thoroughly thought through

stanza.io

XMPP-FTW

Today we present two exciting projects that aim to bring XMPP to the browser and kickstart a new generation on the open web