Push for instant messaging is pretty essential for a mobile device. I find it a bit irritating that with Apple’s new “multitasking” features in iOS 4, they did not include an api for instant messaging apps. So basically the only way to receive push messages for your instant message client is to use a proxy service. This creates obvious privacy concerns, since you’re just sending your username and password to a third party. Most people are okay with this, but I am not. Since I am already running an XMPP server (ejabberd), I decided I should write a module to send me push notifications directly from the server. To do this, I decided to use Prowl, the same app/service I use for push messaging from my IMAP server. I’ve never written anything in Erlang before, so it took some time to read the docs and muster the energy to dive right in. After a bit of learning and experimenting I have created the first version of mod_offline_prowl for ejabberd. Feel free to use it if you like, I am releasing the full source via GPL for the world to use.