Gmail like AJAX powered Web 2.0 version of IMP

Yes, I was trying to put as many buzz words as possible into the headline. Yes, I think these buzz words and the hype around it is completely useless. Yes, I believe a lot of crappy software is being developed only to jump on that bandwagon. Yes, I am very happy with our current version of IMP and use it for all of my emails. Yes, we are nonetheless working on an AJAX powered webmail client and have it almost finished in its first version.

During the last few months we developed a webmail interface on top of the successful IMP webmail client, using AJAX technologies to provide the look and feel of a desktop email client to the users. This new application is called DIMP, short for "Dynamic IMP", in line with MIMP, our webmail interface for mobile clients.

With this project we are catching up with the huge public webmail services like Gmail (or Google Mail, like we have to call it in Germany ;-)), Yahoo! Mail, and Hotmail, who developed similar clients during the last year. The main difference is that we managed to develop this software with 4 (four!) developers, thanks to the great code basis of IMP that's providing stable, production level webmail for 8 years, and other great open source software like Prototype and script.aculo.us.

This project was completely sponsored by SAPO, the online division of the Portugal Telecom, a long time IMP user, that will provide this service to their 3 million users. The new software is currently being tested during a beta phase, and the first feedback was really good and promising.

Some of the exciting features are:

Of course, developing such an application is a bit different than working on an ordinary web application. It almost feels like going back the browser 4.0 days because you have to deal again with all kind of browser quirks that you thought you already had left behind since all major browsers supported XHTML and CSS 2. You also have to keep in mind is that such an architecture doesn't automatically result to less load on the server, only because you don't reload whole pages anymore. The opposite is often true, even if you only replace small chunks of the page, because you usually make way more calls to the server, and each call still spawns a complete server request.

As a consequence we also improved IMP's performance while we were there, implementing a mailbox cache to no longer require loading the complete mailbox headers on each page load. This should help especially on large mailboxes and slow IMAP servers. But even that can backfire if you are working on a 3 million users site. If you cache too much data, you have to buy another server farm to put all the additional hard drives in. ;-)

Altogether this was a great experience and a lot of fun and a nice case to show what you can achieve on top of some good open source software.