« Beeminder home

Beeminder Blog

GmailZero logo

UPDATE 2015: Big improvements to GmailZero!
UPDATE 2019: More changes to GmailZero!

Two years ago, when I still had a day job and Beeminder was just a side project, I wrote about my epic struggle with email:

My email is dysfunctional. I keep things in my inbox because I can’t afford for them to go out of sight, out of mind — but then that’s exactly what happens. They get buried deeper and deeper in my inbox by all the other messages I delusionally think I’m going to deal with.

That was the preface of a Messy Matters article, Inbox Zeroer, in which I proposed that we all declare email bankruptcy and stop adding things to each other’s task lists willy nilly. No, but seriously, I laid out a wish list for some tools to help me reach Inbox Zero, namely, email snooze, re-ping, and auto-expire. Soon after writing that, I switched from Pine to Gmail and eventually implemented email snooze and re-ping using Google Apps Script. [1]

Guess what I found out? The fundamental problem wasn’t my email processing tools, it was my damn brain. Having an amazing IDE with built-in refactoring tools and a Turing-complete macro language won’t just make you produce code. [2] And as great as email snooze and re-ping are (they’re pretty great) they don’t solve your fundamental procrastination problem.

This sounds like a case for — Beeminder!

Of course “inbox size” is a graphable number and you can beemind it like anything else, but long-time friend of Beeminder, David Yang [3], convinced us to integrate with Gmail to automate the reporting. (His argument was very persuasive: he hacked up a prototype for us.)

How it Works

Beeminder periodically checks your inbox throughout the day and records the number of Read messages. The graph plots only the minimum count of the day, so that you just have to hit the low point and stay there long enough for Beeminder to pick up on it. This lets you make slow forward progress toward inbox zero without having to declare email bankruptcy. Plus, it makes you seem like an amazingly thoughtful person when you actually do pick up that email thread from two years ago and respond.

GmailZero only works for people who (try to) diligently archive messages. It doesn’t count Unread messages against you since you don’t have control over those. For example, the 1000 messages you get on vacation? Not a problem — we don’t count them until you get home and start reading through them.

Ignoring unread messages is a double-edged sword, of course. One user reports that he finds himself marking things as unread in order to avoid Beeminder’s sting (or having to deal with the emails, unclear which!). Another marks a batch of unread messages as read at the end of each day, putting her on the hook to deal with them tomorrow.

Teh Codez

If you’ve been holding back because the permissions GmailZero needs skeeve you out [4] or because you have an incompatible email strategy, or if you’re just looking for an excuse to use our new API, you can hack up your own version of it!

Here’s the relevant excerpt of Beeminder’s own Ruby code to count up read messages. Enjoy!


[1] My code is here — snooze.js — and I intend to blog about it in more detail later. UPDATE: Blogged on Messy Matters.

[2] Non-nerd analogy: an amazing word processor doesn’t make you produce prose.

[3] This was before David took off for Y Combinator and founded Yealthy.

[4] Frustratingly, Google doesn’t give fine-grained enough permissions for us to ask just to see stats about your email. It’s all or nuthin’ with them. But we’re not actually reading your email, we swear it!