In the last couple of months, I’ve been increasingly fascinated by XMPP; I said this to a colleague of mine, who reacted roughly as if I’d informed him that I now perceived time as simultaneous. Hey, it’s a tech company but not that techie. Specifically, however, I’ve become convinced that I was barking up the wrong tree with ORGANISE in thinking in terms of database-driven Web applications. For a start, I think these tend to guide the users into a read-heavy, discussion mode; inhaling huge threads, commenting, and then polling for answers. I want people to send things and take action.
And XMPP makes a lot of interesting things possible; it’s real time, it’s a push system, it’s bandwidth efficient, and it has the idea of collection nodes – communities nested in each other – natively, as well as support for a wide range of useful stuff, like sending form options/user interface controls in messages, doing complicated subscription options, and even doing OAuth over XMPP. Transports – servers which bridge other messaging systems into the XMPP namespace – could help it interwork with pretty much anything else.
And as the messages consist of XML stanzas, there are interesting possibilities in what you could do with parsing and making other things talk to ORGANISE. You could even wrap an XHTML document in one and send structured data, rich media or even javascript app logic…if the client application could render it. Hmm.
So, basically, I’ve torn up the old spec and started afresh. There is a new document, version 0.5, and some changes to the design philosophy as well. And there’s a new kid, too – Jörg Wenck of many comments at Fistful has joined up. I want your comments.