Piles

Part of the piles repository.

Claim

Chronological inbox lists force users to mine every message for signal. Piles replaces the flat list with a desk-like canvas of message previews — stacked by sender, decorated with sentiment borders and urgency glow — plus a vertical tab tray that never autoloads the next message.

Visual language

Signal Encoding Values

Sentiment

Border color + label

Good (green), Mostly Good (blue), Neutral (grey), Mostly Bad (yellow), Bad (red)

Urgency

Glow behind card

Independent of sentiment

Importance

Striped border

Tone-mapped “needs you now” vs platform noise

Freshness

Opacity on landing canvas

Full → greyed (sorted) → removed (~10h)

Architecture

  • Core — message IR, piles, sentiment types (TypeScript + D JSON interop)

  • Controller — lifecycle timers, tray, canvas drag, layout mode, search

  • Renderers — vanilla DOM, Avalonia controls, Gmail-chrome mock for screenshots

The pattern lives here. The mail client (IMAP, SQLite cache, installable Avalonia/Electron) lives in Desktop-Tooling/piles. See Division of labor.