— Security
The local core needs no account and touches no server. Pro's sync is end-to-end encrypted, so even we can't read your workspaces. AI never trains on your data. And the limits — yours to manage, not ours to hide — are printed below.
— The Model
The full app — every widget, the infinite canvas, export — runs in your browser and stores everything in IndexedDB on your disk. No account, no server, no network calls after load.
Eliminated: credential breaches, provider snooping, mass data leaks, insider access. There is nothing central to attack.
Turn on sync and your workspaces are encrypted on your device before they ever leave it. The relay stores ciphertext it cannot open. Keys are derived on your hardware, from your credentials, and never transmitted.
Eliminated: readable breach blast radius, provider-side reading, subpoena exposure. The trade-off — key recovery is yours — is below, in writing.
Collaboration grants scoped, revocable keys — never raw access. AI runs on-device by default and never trains on your workspaces. Marketplace widgets pass automated and human review before listing.
Governed by: explicit rules, published on this page — including the honest limits of same-origin widgets.
— The Cloud Layer, Under the Hood
— How Zero-Knowledge Sync Works
── on your device ────────────────────────────────────── workspace …→ derive key(your credentials) // never transmitted → encrypt(workspace, key) // authenticated, on-device ── in transit & at rest ───────────────────────────────── relay receives: [ ██ ciphertext blob ██ ] relay can read: nothing — no key ever arrives relay stores: ciphertext + minimal metadata (size, time) ── on your other device ───────────────────────────────── blob → decrypt(key derived locally) → workspace restored // consequence, stated plainly: // lose your credentials + recovery phrase = lose synced history. // that is what "even we can't read it" costs. we think it's worth it.
— Side by Side
| Surface | Stactora Local | Stactora Pro | Typical cloud app |
|---|---|---|---|
| Credentials | |||
| Account requiredBarrier to doing work | None | Optional, modern auth | Mandatory |
| Password database#1 breached artifact on the web | Doesn't exist | One, per modern practice | Constant target |
| Your Data | |||
| Provider-side data at restWhat servers hold | Nothing | Ciphertext only | Readable plaintext |
| Breach blast radiusWorst case if systems fall | Zero | Unreadable blobs | Entire user base |
| Insider accessEmployees reading content | Impossible | Cannot decrypt | Policy-dependent |
| AI on your dataTraining & retention | On-device only | Never trains, never stored | Often unclear |
| Exposure | |||
| Third-party processorsWho else touches your bytes | Nobody | Payments only | Often several |
| TelemetryBehavioral breadcrumbs | None | Minimal, disclosed | Common practice |
| Legal seizureWhat a subpoena produces | Nothing of yours | Ciphertext, not content | Your data, on file |
|
0bytes readable by us·
0AI training sets·
0%exportable, on every plan
|
|||
Yes — automatic sync is more convenient than manual export.
We just route it through math instead of trust.
— The Threat Model
— Your Moves
Twenty minutes, once. Covers everything the right-hand column asks of you.
— Responsible Disclosure
The app code, the account and sync chain, the E2E implementation, the widget API boundary and import/export parsing are all fair game. We acknowledge within a week and publish fixes with credit.
# Stactora security policy Contact: mailto:security@stactora.com Expires: 2027-06-01T00:00:00Z Preferred-Languages: en Policy: https://stactora.com/security/#disclosure # In scope: the web application, accounts & auth, the sync relay # and its E2E implementation, collaboration permissions, # AI request handling, marketplace review & the widget # API boundary, import/export parsing. # Out of scope: social engineering, automated scanner spam, # compromised end-user devices.
— The Hard Questions
Open the app. Open devtools. Watch the network tab — with sync off you'll see nothing leave; with Pro sync on you'll see opaque blobs. That's the whole trick, and you just checked it.