Draft Specification v0.1

Portable subscriptions for the open web

OPE is a portable entitlement layer that lets readers access gated content across any app, any feed format, any browser, and any platform. Subscribe once, read anywhere — in your feed reader, on the web, or through a broker bundle.

Entitlement, not payments

OPE proves you're allowed in. Payment processors handle money. Clean separation.

Truly portable

Your subscription works in any OPE-compatible reader. No platform lock-in.

Works with any feed

RSS, Atom, JSON Feed, AT Protocol. OPE extends what you already use.

Publisher-controlled

Publishers issue grants and control access. Their content, their rules.

Design Philosophy

Four layers, cleanly separated

OPE occupies the space between content distribution and payment processing. Each concern stays independent.

Layer 1

Content

Articles, media, and resources. Created and hosted by the publisher.

Layer 2

Distribution

Feed formats (RSS, Atom, JSON Feed, ATProto) that catalog and deliver previews.

Layer 3 — OPE

Entitlement

Verification that a reader has the right to access content. Portable across apps.

Layer 4

Payments

How money changes hands. Stripe, x402, Lightning, or anything else. Out of scope.

The Flow

From feed to full content

Five steps from discovering an article in your reader to reading the full thing.

1

Feed

Reader fetches a feed and finds OPE-gated items with preview content.

2

Discovery

Reader fetches /.well-known/ope to learn the publisher's capabilities.

3

Authenticate

Reader initiates OAuth 2.0 with PKCE. User logs in with the publisher.

4

Grant

Publisher issues a signed grant token proving entitlement.

5

Read

Reader presents the token and retrieves full content. Done.

Simple discovery, powerful access

Publishers expose a single well-known endpoint. Reader apps handle the rest — OAuth, token management, content retrieval — all standardized.

Discovery
JSON manifest at a well-known URL
Auth
OAuth 2.0 with PKCE, consent, dynamic registration
Tokens
JWT, PASETO, or Macaroons — API or cookie transport
Content
Single item or batch retrieval, HTTP 402 signaling
Web
Cookie-based grants, browser unlock, cross-publisher SSO
Feeds
Non-breaking extensions with unlock URLs
/.well-known/ope
{
  "version": "0.1",
  "oauth_server": "https://example.com/.well-known/oauth-authorization-server",
  "entitlement": {
    "grant_url": "https://example.com/api/entitlement/grant",
    "token_format": "jwt",
    "token_mode": "portable",
    "default_ttl_seconds": 3600
  },
  "content": {
    "endpoint_template": "https://example.com/api/content/{id}",
    "batch_endpoint": "https://example.com/api/content/batch",
    "formats_available": ["html", "markdown"]
  },
  "grants_supported": ["subscription", "gift", "per_item", "broker"]
}

Who It's For

Built for the entire ecosystem

Publishers

Keep full control of your content and subscriptions while making them work everywhere.

  • · Add OPE metadata to your existing feeds
  • · Expose a single discovery endpoint
  • · Use the reference gateway or build your own
  • · Support any payment processor you want
  • · WordPress, Ghost, Substack migration paths

Reader Apps & Browsers

Give your users seamless access to gated content from any OPE-enabled publisher — in-app or on the web.

  • · Detect OPE extensions in any feed format
  • · Manage per-publisher OAuth sessions
  • · Show rich previews with content metadata
  • · Batch retrieval for fast offline sync
  • · Browser unlock via cookies and HTTP 402
  • · Unified subscription view across publishers

Brokers

Create subscription bundles across multiple publishers. Like cable bundles, but for the open web.

  • · Aggregate entitlements across publishers
  • · Issue broker grant tokens with Macaroons
  • · Capability attenuation for scoped access
  • · Single sign-on for multi-publisher access
  • · Enable new business models

Flexible Access

Eight grant types, one protocol

OPE doesn't prescribe how entitlements are earned — it standardizes how they're proven.

Subscription

Recurring access to all content

Per-item

Pay per article, scoped to content IDs

Gift

Shareable unlock links, time-limited

Institutional

Libraries, universities, organizations

Metered

Free article limits with meter tracking

Locale-free

Regional free access by user locale

Patronage

Voluntary support, optional full access

Broker

Multi-publisher bundles via brokers

Compatibility

Works with what you already use

OPE is a purely additive extension. Readers without OPE support simply see previews as usual.

RSS 2.0 Atom JSON Feed AT Protocol OAuth 2.0 PKCE JWT PASETO Macaroons DPoP PAR / RAR HTTP 402 RFC 7591 x402 Stripe WordPress Ghost

Start building with OPE

The specification is open and ready for implementers. Read it, build on it, and help shape portable entitlements for the open web.