Display caching

Posted on April 29, 2019 by Scott

Display Caches

A smaller update, perhaps:

This post’s feature is an important performance optimization for larger messages: caching headers and text bodies for messages with large attachments.

Basically, when a message is stored in Purelymail, we store the original email we received as a source of truth. Because of how the email format works, that means that if we received a message with a large attachment, we might need to parse the whole thing to get at the much smaller text to display. Our architecture also requires first downloading the whole message from storage to our servers before returning even the headers, which can make displaying 50 or so messages taglines for your inbox slower than it has to be.

Now, when we receive a larger message, we’ll create a stripped down version of it containing just headers and small text bodies (a “display cache”). That means performance should be much more consistent. The display cache is stored with the same encryption all mail messages are, of course.

Note that this only applies to new messages.

There’s still more work to be done in terms of performance, though. Downloading large parts messages and performing searches for a user with many messages would both benefit from the ability to stream content more selectively from storage to our servers rather than first download all of it.

And more!

A few more bonus webmail features: - Email addresses you send to should now automatically be added as contacts, so they can be automatically suggested when sending emails in the future. - Authentication-Results: A checked circle should appear to the left of “From” in emails. It shows information about email authentication, i.e. whether we could prove an email came from who it said it did. This may work with other email clients that support it, too. - Message highlights: Under Settings -> Message Highlights, you can add rules to highlight messages in your inbox a certain color. Maybe useful if you need to quickly pick out who mesages are from.

Yea, I know, I promised an update in a week three weeks ago. Turns out I’m really bad at predicting when stuff will get done, which is fairly common in software development. I’ve been working on a lot of small tweaks and tech debt cleanup that, while necessary, don’t make for compelling news items.

In that light, a quick word about timelines. We could be in beta anywhere from a few more months to years, it’s difficult to say. We’ll only leave beta when Purelymail reaches a point where we’re confident it doesn’t have any major issues and we’ve added a few more necessary features (check the issue tracker for items tagged Beta).

Fortunately we’re not actually in a rush, here. If you were wondering, Purelymail is not that expensive to run, and has several years worth of bootstrapped funding (mostly to pay for living expenses). We’re not a startup with hungry investors breathing down our necks. We do need more users to become profitable at some point, but not that many, in the grand scheme of things.

So, see you next time, whenever that is.