Old-school tree-structured threading

The Problem

Complementary to the request for a way to turn threading off entirely, it would be really nice to have old-school tree-structured threads as an option, ideally on a per-mailbox basis.

To see what tree-structured threads look like, the easiest thing to do is visit a Web mailing list archive that implements them. For example:

You can also experiment with a mail client that has this option, such as Thunderbird or Gnus.

This may sound esoteric but it is actually a showstopper requirement for me. Mailing lists like the ones I used as examples are basically impossible to participate in if you don’t have a mail client that supports this style of threading.

Proposed Solution

The most important UI affordances of a tree-structured thread are:

  1. Messages are displayed as a tree rather than a list. Each message’s tree parent is the message it is a direct reply to (according to the In-Reply-To and/or References headers; see message threading for precise algorithm) and its siblings are the other replies to that message, in chronological order. Practically speaking, it is necessary to stop incrementing the visual nesting level of a thread at some point, but the system should still track the tree in detail.
  2. It is easy to respond directly to any message in the thread, not just to the most recent one; the UI treats this as a normal thing to want to do, not a special case.