Most feed readers answer a narrow question: what has been published? Modern publishing no longer fits it. A single publisher may put out articles, podcasts, video, software releases and machine-generated reports through entirely different mechanisms. RSS and Atom cover part of that well; everything else is bolted on through namespace extensions or missing altogether and most modern readers optimise for engagement rather than calm reading.
Meridian pairs a local-first desktop reader with an open protocol. MMSP defines a machine-readable publication and discovery contract: a publisher describes what it publishes at a well-known endpoint and any client can discover and consume it predictably. Meridian is the reference implementation. It consumes RSS, Atom, podcast, YouTube and native MFEED feeds through one model, so subscription feels consistent even when publication formats differ.
A reference client has to be exemplary or the spec it implements loses authority. The polling semantics the spec mandates (conditional GET, the 300 second floor, the honest MMSP/1.0 User-Agent) sit behind a pure domain inside a four-layer architecture whose boundaries are enforced by structural tests, with 100% branch coverage on every build. Subscriptions and read state live in local SQLite; there is no account, no cloud and no server.
What works now is a calm three-pane reader for Windows, macOS and Linux: topic-based feed discovery, per-feed filter expressions, bulk management, a built-in media player, Catppuccin themes and every control reachable by keyboard. The protocol remains the heart of the project: once publication becomes explicit, interoperability becomes possible.
Full reasoning at crankthecode.com.