End-to-end encrypted storage for a web app

Seige lets a web app store end-to-end encrypted records and files without implementing cryptography, key exchange or key recovery. The SDK encrypts each change in the browser before it is sent. Seige's servers store ciphertext without the keys to read it, and the data lives in the user's own Seige account.

import { createSeige } from "@seige_sdk/sdk";

const seige = createSeige({ appName: "Journal" });

await seige.from("entries").insert({ body: "A quiet day by the coast." });
await seige.files.put("photos/coast.jpg", photo);

Encryption is part of every call. There is no separate encryption API to use and no key for your app to store.

How the keys work

What Seige's servers can see

Seige's servers can see account and routing metadata, the number of installations an app has, their public keys, and the sizes and timing of requests. They cannot read file contents, file names, database contents or the app's private keys.

What encryption does not cover

This guide is also available as Markdown for coding agents.