Lower the cost of switching to your product. New users keep their layout, words and shortcuts from day one.

SDK alpha in development · 12-week design partner pilots, free or nominal fee

Example profiles

Priya arrives from another tool. Their habits: List · roomy · plain words

app.acme-projects.example/my-work

Welcome to Acme

New here? Take the 12-step product tourStart

Queued

Hire support lead

Active

Migrate old projects

Q4 launch plan

Shipped

Update pricing page

To relearn on day one

3

Layout· used ListStatus words· used Working on itDay starts with· used Today

Illustrative product and people. Your brand, components and locked screens stay exactly as you built them.

Your product is better. Habits live elsewhere. Switching has a hidden bill: new layout, labels and shortcuts, paid in week one.

Familiar from day one. New users answer a few plain questions. DNA Share will bring existing profiles in, with consent.

Your components, your brand. OwnUX builds surfaces from your registered components and tokens. Users see your design, never Satin’s.

Locked where it matters. Billing, security, consent and compliance screens are declared locked and never re-rendered, whatever a user prefers.

Your backend decides. Business logic, data and permission checks stay in your API. The SDK holds no authorisation logic.

No forked frontend. One product, one codebase. Adaptive surfaces live inside it, your standard view one action away.

Measured against a holdout. Planned: activation, time to first key action, feature discovery and task errors, against users without OwnUX.

Measurement

Prove it with a holdout. Not with anecdotes.

The SDK puts each new user in a stable cohort: OwnUX, holdout or your standard view. By default, 15% of new users are held out, and you can change it.

  • Assignment is deterministic, so raising rollout only adds people.
  • A signed kill switch returns every surface to your view.
  • Planned: results with confidence intervals, never selected anecdotes.
About holdout analytics

New users this month · 100 shown

Rolling out
See OwnUX9
Holdout13
Your standard view78

Holdout group

One primary metric, such as 7-day activation, agreed in writing before the pilot starts.

Planned: confidence intervals, reported against the holdout. No result is shown here because none exists yet.

Illustrative cohort. Drag the rollout, change the holdout or flip the kill switch.

From sandbox to production, through your own staging. The same path for every product, with a conformance gate before users.

  1. 1

    Run the Reference App

    Start from Satin’s own small task app, built on the SDK, in the free sandbox on your machine, available when the SDK is published, soon.

  2. 2

    Declare and map

    Write a capability manifest for a few entities and actions, and register your components for OwnUX’s primitives.

  3. 3

    Pass conformance

    Run ownux test against staging. Checks are reported in plain words; publishing is blocked until it passes.

  4. 4

    Roll out with holdout

    Release to a share of new users, watch activation and safety metrics, then promote to production.

ownux/manifest.ts
import { defineManifest } from "@satin/ownux";
const READ = { risk: "read", preconditions: ["user_authorized"], fallback: "deep_link" } as const;
const WRITE = {
risk: "reversible_write",
preconditions: ["user_authorized", "task_unambiguous", "field_editable"],
verify: "read_back",
fallback: "deep_link",
} as const;
export const manifest = defineManifest({
app: { id: "acme-projects", version: "1.4.0" },
actions: {
"task.list_assigned": READ,
"task.search": READ,
"task.set_due_date": { ...WRITE, input: { task_ref: "task.ref", due_date: "date" } },
"task.transition": { ...WRITE, input: { task_ref: "task.ref", transition_id: "string" } },
},
// Screens OwnUX never renders, whatever a person asks for.
locked: ["billing", "security", "consent"],
});

The manifest is the contract. It says which actions OwnUX may offer, how risky each is, and which screens it must never touch. OwnUX stays off until it passes the L1 Declared check.

Every write declares a read-back verification and a fallback. If your API refuses a change, the user is told and nothing changes.

The design partner programme. A 12-week pilot with hands-on support and honest reporting, whatever the result.

Pilot length
12 weeksPilot lengthFree, or a nominal fee
Default holdout
15%Default holdoutOf new users, adjustable
Agreed in writing up front
1 metricAgreed in writing up frontWith a minimum detectable effect
New users a month
500+New users a monthTarget criterion, so an effect can be measured

Who it’s for

  • B2B SaaS in work management, or an area next to it
  • A React web frontend
  • A target of 500 or more new users a month
  • A named product leader as sponsor
  • Willing to run a holdout group

What we commit to

  • Hands-on help writing the manifest and mapping your components
  • Weekly check-ins for the length of the pilot
  • Conformance fixes within agreed response times
  • Transparent reporting of the result, whatever it is
  • Conversion to the Launch plan only if the agreed criteria are met

Where things stand, and what teams ask us.

In developmentThe OwnUX SDK alpha for React, running in the Reference App, and the ownux test conformance CLI at v0.

PlannedDNA Share: users bring selected Interface DNA values into your product, with consent, scoped and revocable.

PlannedA developer portal, and a vendor analytics dashboard with holdout comparisons.

No. Users without an Interface DNA set their preferences inside your product, using the same schema. Users who already have one will be able to bring it in through DNA Share, which is planned.

Make switching to you the easy part. Register your interest in the 12-week design partner pilot.