PigeonPost icon

Why this exists

The design story in short, the engineering behind it and some honest comparisons.

Why this exists

The short version of the reasoning; the full essay lives on crankthecode.com.

Desktop email settled into three unsatisfying shapes. Webmail is convenient yet answers to an engagement model: it wants your attention and it changes under you. Outlook wants a subscription and pulls your mail deeper into an account you rent. Thunderbird earned two decades of trust yet its priorities sit in someone else's queue, so the things a daily user reaches for most can stay buried for years.

PigeonPost is a refusal of all three shapes at once. The brief was narrow: email as a calm, predictable, local tool. Your mail stays with your provider; the client reads it, caches it and gets out of the way. There is no PigeonPost account, no cloud relay in the path and no telemetry. Each temptation layered onto modern mail (accounts you do not need, notifications tuned for engagement, rendering that phones home) is declined structurally rather than by policy, so it cannot quietly creep back in.

The engineering carries the same discipline. A Go core sits behind a Wails shell with a React and TypeScript front end; mail speaks IMAP, POP3 and SMTP through explicit protocol libraries; summaries and bodies cache to a pure-Go SQLite store for instant offline search; credentials live in the OS keychain rather than any database. One clean-architecture boundary separates the mail engine from the UI and structural tests enforce it, with a 100% coverage gate on the core logic.

What works now is a fast, native client for mail, calendar and contacts on Windows, macOS and Linux, each with its own installer. Provider presets cover Gmail, iCloud, Yahoo, Zoho, Fastmail and StartMail through app passwords; Microsoft accounts sign in over OAuth. Because the server remains the source of truth, the local cache is disposable: trying PigeonPost costs nothing and leaving costs nothing.

Full reasoning at crankthecode.com.

Why I built it

I wanted a desktop client that was free, dependable and laid out the way I actually work. The mainstream options did not fit. Outlook 365 wanted a subscription. Thunderbird is free and open but community-governed, so a bug I hit waits in someone else's queue and the things I reach for most are buried. PigeonPost is my answer: GPL-3.0 and free, a calm predictable interface where everything is easy to find. Oliver Ernster.

Tested to the last line

The core logic carries a 100% test-coverage gate. The build fails if a single untested line lands.

🧱

Architecture that holds

A clean layered core whose boundaries are enforced by automated structural tests, not by good intentions, so the design cannot quietly erode as features land.

🔍

Checked on every change

Formatting, vetting and a strict static analyser run clean across the Go codebase, so problems are caught before they ship.

🪶

Open and forkable

GPL-3.0 with the full source on GitHub. If it ever stalls, anyone can read it, fork it or carry it on, with credit to the original author retained. Nothing about your mail depends on me being here.

An honest comparison with Thunderbird and Outlook

Where PigeonPost sits next to two clients you may be leaving. Both are good tools. This stays factual, including where PigeonPost is behind.

PigeonPost Thunderbird Outlook 365
Price Free, GPL-3.0 Free, open source Subscription
Platforms Windows, macOS (Apple Silicon) and Linux Windows, macOS and Linux Windows, macOS and web
Where your mail lives With your provider and cached on your machine On your server, cached locally Account and server based
Works offline Yes, cached and searchable Yes Yes, cached
Search Local, instant, offline Local global index Local and online index
Cost of leaving None, your mail stays with your provider Low, standard protocols Account based

A calm promise

Some things PigeonPost will not do, on purpose. Calm and predictable is the whole point, so these stay off the table.

Who it is for and who it is not

Honest fit, so the right person trials it and the wrong person is not misled.

For you if

  • You use IMAP or POP3, whether that is self-hosted, your ISP, Fastmail or a corporate server
  • You use Gmail, iCloud, Yahoo, Zoho, Fastmail or StartMail and can add an app password
  • You use a personal Microsoft account (Outlook.com, Hotmail, Live or Microsoft 365) through Microsoft sign-in

Not for you if

  • You only ever want webmail with no desktop install
  • You have a Google Workspace work or school account, which is OAuth-only so an app password will not work
Go core React front end Wails SQLite, local-first OS keychain GPL-3.0

Nothing moves that you cannot move back

Download the build for your platform, point it at your account and see how it feels. Your mail stays with your provider the whole time. If it is not for you, it was never anywhere else.