We're ending this year's calendar with something most of us dislike, but occationally need or at least get in contact with.

Webmail sucks. We are Perl programmers. We like our mutt or maybe our kmail but at times, webmail is the only thing available. And the only webmailers available are written in PHP and they all have their difficulties and problems.

In the Perl republic on the other hand we have great components: we have Catalyst, we have Mail::IMAPClient, we have MIME::Tools and many more. The only thing missing was an application that pulled these together into a usable application: CiderWebmail

What we want

If you live email, your mailbox probably contains thousands or tens of thousands of messages. Since we're used to the features of modern email clients, these thousands are probably contained in only a few folders.

Our goal is to handle these mailboxes efficiently like a local client. We want our webmailer to be snappy with folders containing 10_000 messages so you can quickly find the message that you need. We really care about the user experience. That means, not needing to guess which one of the 388 pages of messages is the important one, near instant response time, configurable and themeable keybindings, and an intuitive (possibly beautiful) user interface.

How is it done?

CiderWebmail is a Catalyst application using Mail::IMAPClient as backend, MIME::Tools to parse messages, Petal as template engine and JavaScript and AJAX in the front end to make drag & drop and on demand message loading work.

We try to write really modern Perl. By following best practices, we produce code that's fun to work with. Some of these practices are thin controllers, logic-free templates, test suites and tidy, documented code.

The result looks like this:

CiderWebmail message list

Who is "we"?

We are currently two guys from Austria who happen to host mail servers and share a dislike for existing webmailers and the love for Perl. Mathias is a full time administrator while I (Stefan) am a full time developer.

What you can do

The current version 1.01 is usable. It works for us and already has some nice features. But it can be improved on all fronts: It needs:

  • testing (and tests)
  • more documentation
  • packaging
  • better JavaScript (porting to JQuery?)
  • HTML message creation (yes, some people really want this)
  • more configurability
  • cool features!
  • better design
  • a logo :)

... and much more. Any help is greatly appreciated. We know that the code is only a part of the whole - a very interesting part to us programmers, but itself nearly worthless without the rest or the project.

How to start

You can get the code and information at

There's a project mailing list, available at If you have any questions, problems, ideas, patches, bug reports or anything else related to CiderWebmail, you can post there and usually receive a quick response.


Stefan Seifert <>