1. The feed
A few om: elements: provider, payment processors, tiers, per-item access state.
An RSS namespace that lets any publisher charge for content and any reader unlock it. Three moving parts. MIT and CC-BY-4.0.
A publisher adds a handful of om: elements to their existing RSS feed. That is the whole surface a reader has to recognise to unlock paid content.
<rss version="2.0" xmlns:om="http://purl.org/rss/modules/membership/">
<channel>
<title>Field Notes</title>
<om:provider>https://fieldnotes.example</om:provider>
<om:discovery>https://fieldnotes.example/.well-known/open-membership</om:discovery>
<om:psp id="stripe" account="acct_..." />
<om:tier id="paid" price="USD 8.00" period="monthly">Supporter</om:tier>
<om:offer id="supporter-monthly" tier="paid">
<om:price amount="8.00" currency="USD" period="P1M" />
<om:checkout psp="stripe" price_id="price_supporter_..." />
</om:offer>
<item>
<title>Members-only investigation: the warehouse fire</title>
<om:access>locked</om:access>
<om:preview>The fire investigators' report was filed two weeks before...</om:preview>
<om:unlock>https://fieldnotes.example/unlock/2026-04-fire</om:unlock>
</item>
</channel>
</rss>
A reader that doesn't understand om keeps working as before. A reader that does shows previews and unlock prompts.
A few om: elements: provider, payment processors, tiers, per-item access state.
One JSON document at .well-known/open-membership (composes with RFC 9728). Token endpoints, auth methods, revocation policy.
A URL token, an OAuth bearer, or a W3C Verifiable Credential. Portable across reader apps.
A Verifiable Credential profile (OM-VC, with OM-VC-SD for BBS+ selective disclosure) lets a subscriber prove "I am a paid member of this tier" without revealing a stable identifier that publishers could correlate.
Built for cases where a subscriber list could be subpoenaed: investigative journalism, medical publications, legal research.
Read the spec and the Ghost or WordPress reference plugin. Open an issue if you want help onboarding.
Reference plugins →Start with the parsing tests and the Miniflux patch plan. First integration is an afternoon of work.
Test suite →Companion specs cover ActivityPub coexistence, the Adapter Profile, syndication mappings, and portability.
Browse the spec →