Let people bring their preferences to your product. Users bring the preferences they choose, with consent.

Planned. DNA Share isn’t available yet; design partners will shape it.

satin OAuth 2.0 · PKCE

Acme Projects wants to use your OwnUX

Choose what to share. You can revoke access at any time in Satin.

Not now

What Acme Projects receives

preview

{

"layout": "list",

"density": "comfortable",

"labels": "plain",

"visual": { "contrast": "more", "text_scale": 1.25, "reduced_motion": true }

}

Your use of other apps

Work content from any app

Your Satin activity

Anything you leave unticked

Familiar from the first minute. DNA Share is the consented bridge between a person’s Interface DNA and your product.

  1. 1

    Your product asks

    A person signed in to your OwnUX-enabled product sees “Use my OwnUX”, next to your own settings.

  2. 2

    The person chooses

    Satin shows the dna:* scopes you request, such as layout, spacing and labels. They can untick any.

  3. 3

    You receive granted values

    Using OAuth 2.0 with PKCE, you receive only values for the scopes they granted.

  4. 4

    They can revoke

    Revoking in Satin ends the grant, and you delete stored values under the data-processing terms.

How the grant works

Standard OAuth 2.0 with PKCE. Consent is per scope, and nothing is shared until the person says so.

The person signs in to Satin, not your product, and an intercepted code can’t be exchanged on its own. Step through the planned flow, from first click to revocation.

  • Scopes are named dna:<axis>, one for each Interface DNA axis.
  • Satin records each grant: product, scopes, granted and revoked times.
  • Revoked grants return nothing; your product deletes what it stored.
What Interface DNA holds

Person

Your product

satinSatin

  1. 1 Use my OwnUX

  2. 2 Scopes + challenge

  3. 3 Consent screen

  4. 4 Chosen scopes

  5. 5 One-time code

  6. 6 Code + verifier

  7. 7 Granted values

  8. 8 Revoked

Step 1 of 8

The person clicks “Use my OwnUX”. A person signed in to your product chooses to bring their Interface DNA. Nothing is shared yet.

One scope per axis. Nine scopes, one per Interface DNA axis in ownux-dna/1. Every axis is optional.

dna:density

Comfortable, balanced or compact.

dna:navigation

Task-first, project-first or recent-first.

dna:layout

List, board, or a compact table where your data can be shown as one.

dna:labels

Plain, standard or expert wording. Your product’s own meanings are always kept.

dna:interaction

Keyboard-first, pointer-first or mixed, and the shortcut scheme.

dna:guidance

Inline hints, an optional walkthrough, or minimal help.

dna:visual

Contrast, text scale from 0.75 to 2, and reduced motion.

Shown to people as “Accessibility”

dna:locale

Language, time zone, date format and the first day of the week.

dna:change_policy

Preview first, apply presets by hand, or approved rules.

Consent that stays meaningful. DNA Share moves preferences, never behaviour. These boundaries aren’t settings.

Never usage or content. You never receive their use of other apps, app content or Satin activity. Only granted values.

Revocable, for real. A revoked grant stops working, and the data-processing terms oblige you to delete stored values.

Never adapted twice. Planned for the beta: on an OwnUX-enabled product, the Satin extension will stand aside and offer DNA Share instead.

No Satin account needed. People without Interface DNA set their preferences in your product with OwnUXSettings, in the same schema.

Questions, answered.

PlannedDNA Share is planned. It depends on Satin’s control plane, which isn’t built yet.

It is planned, not built. It needs Satin’s control plane and an OAuth authorisation server, which come after the SDK alpha. The rule already exists in the OwnUX core: a product receives only the axes a grant covers.

Help shape DNA Share. Design partners will be first to offer it, with consent.