openpreference
GitHub Sign in

Take your preferences with you.

Portable, discoverable, useful. An open standard so any service that asks for your preferences can find the ones you've already set — on your terms, with your consent, through protocols you control.

v0.1 · draft, revised September 2026 · specs CC-BY-4.0

How access works

Three tiers. One subject. Different circles of trust.

Every preference belongs to one of three tiers, as specified in OPI-PD §7. You decide which tier each preference lives in. Subjects stay in control. Clients get exactly what they've earned.

01

Public

No authentication. Anyone can read these. Think: what you'd write on a business card.

  • Display language
  • Timezone, locale
  • Preferred name
02

Client

Authenticated clients on the trust registry — OAuth Client Credentials. You decide which categories they unlock.

  • Dietary restrictions
  • Accessibility preferences
  • Currency & units
03

User-authorized

Explicit, revocable consent per requestor. OAuth Authorization Code + RAR with purpose and retention disclosed.

  • Marketing consent
  • Sensitive health preferences
  • Communication channels

The specs

Three short documents. Read them all in an afternoon.

openpreference/opi
STABLE OPI-PD

Preference Discovery

OPI-PD 0.1: Preference Discoverability

16 sections · ~7 pages Read
STABLE OPI-EPS

Exchangeable Preferences

OPI-EPS 0.1: Extensible Preference Schema

15 sections · ~5 pages Read
ALPHA OPI-TRUST

Trust Registry

OPI-TRUST 0.1: Trust Registry

15 sections · ~5 pages Read

The specs are CC-BY-4.0. Implement them. Break them honestly.

How it works

Three steps. Passkeys, not passwords. No app store required.

01

Claim a handle

Sign up with a passkey. Your handle becomes an address any site can look up, and you can point your own domain at it later.

02

Set preferences

Write the things you already repeat — dietary needs, accessibility, comms. Choose the tier each one lives in.

03

Services discover them

When a service asks, they do a WebFinger lookup against your handle and fetch only what their tier permits.

Honest answers

Questions worth asking.

Is this a SaaS or a spec?
Both — openpreference.org is a reference implementation of the spec. Anyone can run their own server, or use ours. The spec itself is what matters; the hosting is incidental.
Why would a company pay attention to this?
Two reasons. First, user preferences they'd otherwise re-collect (language, accessibility, dietary) are a call away. Second, the trust registry lets them prove they're not one of the bad actors — which, increasingly, people check for.
How is this different from a profile aggregator or identity provider?
We don't store identity. We don't log in to anything else on your behalf. We store small, structured preferences — the things you already repeat across forms — and let you expose them at three clearly-defined tiers. No social graph, no inferred attributes, no score.
What stops a bad client from scraping the public tier?
Nothing at the protocol level — and that's intentional. The public tier is a business card, not a vault. For anything richer, clients must authenticate, and user-tier access requires per-request consent with purpose and retention disclosed.
What is the seed trust registry?
A signed, published list of verified requestors — clients that meet the bar to read client-tier preferences. It is not a global gatekeeper: anyone can run a server, but honest actors can show up on the list and stay there until revoked.
Can I run my own server?
The protocol is open: any server that implements the specs interoperates with this one, and the validator will tell you how close you are. A self-hostable build of this server is on the roadmap but not available yet.

What we commit to

The Late Summer Labs trustmark — the same promises across our projects.

No ads.Never the business model. Not here, not ever.
No surveillance.We log the minimum, and you can see every entry about you.
No dark patterns.No manufactured urgency, no shame-based copy.
Free to use.The hosted server is free, and so is running your own.
Data minimization by default.We ask for what we need. Nothing more.
Interoperable where it matters.Specs are open. Implementations are forkable.