The original app is always one click away. Satin sits over the app, never in place of it.
The native switch is built and tested; the extension is in development.
Atlas · Personal mode
Your day
Today
Next
Blocked
- The original page stays mounted underneath
- Its own shortcuts pause while Satin has focus
- One click or your shortcut takes you back
Illustrative. Satin never changes the page underneath.
One click back, and nothing lost. Every feature stays where it was, and the way back is on every screen.
The page stays put. Satin draws over the app in an isolated layer; the page underneath stays loaded and untouched.
On every screen. The translation engine refuses to produce a Satin screen without the switch back.
A shortcut, too. Use the button or a keyboard command.
Focus comes back. Switch back and your cursor is exactly where it was on the original page.
Nothing is lost. Scroll position, selection and unsent text survive the trip in both directions.
Links to the source. Every task and safe failure links to the same item in the original app.
Graceful failure
If the app changes, Satin steps aside. On its own, before it can get in your way.
Every adapter runs a health probe at start. If the app’s answers no longer fit its mapping, the adapter switches off, changes are refused and the original app returns.
- “Paused by us” and “the app changed” have separate reasons.
- Adapters are bundled, never downloaded, so fixes are reviewed updates.
- Each pause is announced once, not on every page.
Jira Cloud adapter
Declarative, bundled inside the extension
Atlas · Personal mode
Your day
- Press a button to see what Satin does when something goes wrong.
Locked surfaces
Some screens are never touched. The product decides which.
In an SDK product, the manifest lists screens OwnUX must never re-render, such as billing, security and consent. The SDK refuses to render them; the product’s own screen appears.
- Locked screens are declared once, in the manifest.
- A locked-surface result falls back to the product’s view.
- Satin for People never runs on banking or payment pages.
Acme Projects OwnUX SDK
My work
Your OwnUXPlain words, roomy rows, built from Acme’s own components.
locked: ["billing", "security", "consent"]
compose("my_work") → ok, validated surface
The kill switch. Satin can be paused remotely, only by a file signed with its own key.
- 1
Signed
Each file is signed with Ed25519 and checked against public keys pinned inside the extension.
- 2
Flags only
It can switch reviewed behaviour off or on. It can never add new behaviour or code.
- 3
Never replayed
Tampered, unknown-key, older or expired files are ignored, and the last good one stays in force.
- 4
Checked often
The extension looks for a new file at most every 15 minutes, and whenever Satin’s view renders.
Built and tested against development keys. The production signing key and hosted file come before the first release to testers.
Questions, answered plainly.
In developmentSatin for People is in development: Jira Cloud first, Linear next. The native switch and health probes are built and tested.
No. In Personal mode, Satin’s view sits over the page in its own isolated layer. The page underneath is identical before, during and after, and a test checks exactly that.