Twitter + XMPP = intelligent Twitter

Our Twitter gateway, running at Tweet.IM, has been designed not only for desktop/laptop users, but also with mobile users in mind: we add real push and availability to Twitter.

We started from a simple observation: on one hand the successful Twitter is very basic, being based on polling and stateless technologies, and on the other hand XMPP is featureful, being based on push and presence technologies. Push against polling, and stateless against presence… we just had to do something: Tweet.IM.

In this post, I will describe the configuration I use for my daily Twitter needs, and show its efficiency, by adding native XMPP features to Twitter.

Add push and availability to Twitter

To be instantly notified by real push through XMPP of new Twitter events according to your availability, the recipe is quite simple: register your Twitter account on an XMPP gateway by simply go to Tweet.IM website and filling the form with your Twitter username and password, and your XMPP / Jabber ID or Gmail address. You will receive a presence subscription request from, you just have to accept it. For the XMPP gurus, just point your service discovery at and register.

Now you need to play with your presence in order to filter the type of event you want to receive:

  • You can switch your XMPP client to “available” status: you will receive your timeline and search results as they are posted.
  • You can switch your XMPP client to either “away” (unvailable) or “do not disturb” (dnd) when it is not being used. In “do not disturb mode” you will receive only your direct messages. In “away” mode you also receive mentions and follow/unfollow notices. On OneTeam for iPhone, this is the status you show when the client is closed but not disconnected, waiting for push notifications.

Mobility context

If you regularly use a mobile client, it really makes sense when the events are sent to you only when you are available: you thus save your time and bandwidth by filtering out what you don’t want to receive. This is very efficient when you want to reply fast to messages that are addressed to you.

You will thus receive Twitter data, filtered to your taste, wherever you are, thanks to your data plan and the 3G/GPRS/EDGE cellular networks, whether the device is in your packet or in the palm of your hand. Here, XMPP plays the role of the real push feature, in an always-on devices world, and also adds the availability feature to Twitter, both of which are lacking.

More XMPP features to Twitter

Besides these push and availability features, you also benefit even more features from XMPP:

  • Archiving on the XMPP client, which enables the search feature online, as well as onffline
  • Multiple connections to Twitter:
    • From different XMPP clients, if run one at home, at the office, and in your pocket. You will be receiving notices only once, thus avoiding reading twice the same content
    • From different XMPP accounts, if you have one for friends and family, and one for the workplace

Even further with OneTeam

In order to event go further with this approach, I recommend OneTeam for iPhone, in order to benefit the Apple push notifications. After installing OneTeam, create an account on domain to benefit from the push module (or buy the push module for your ejabberd server). (Be carefull: create the account directly from the mobile client, the website is being rewritten). Enable your account with Tweet.IM and start getting Twitter events.

I have been using this approach since quite a while and this has proven to be really very handy and efficient, saving my time, bandwidth, and battery life.


We added many handy XMPP features to Twitter, among them push and availability, thus the equation:

Twitter + XMPP = intelligent Twitter

You can subscribe and use freely Tweet.IM, and you can obtain our Twitter transport as a part of the IMgateways offering.

Let us know what you think 💬

One thought on “Twitter + XMPP = intelligent Twitter

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.