A backend for vibe-coded apps, with no API keys to manage

Sign-in, a database, file storage and AI through one browser SDK. There is no server to deploy, no project to register and no key for your coding agent to ask you for. Your users’ data stays in their own encrypted Seige account.

Install
npm install @seige_sdk/sdk
Server to run
None
Keys to copy
None
Access rules to write
None

The whole integration

app.js
import { createSeige } from "@seige_sdk/sdk";

const seige = createSeige();

await seige.from("trips").insert({ city: "Lisbon", nights: 3 });
const { data: trips } = await seige.from("trips").select().order("city");
await seige.files.put(`trips/${file.name}`, file);
const { data: answer } = await seige.ai.generate({ prompt: "What should I pack?", input: trips });

The first call that needs the user asks them to connect your app to their Seige account and then continues. Tables are created the first time you insert into them.

What you do not have to build

Sign-in and permissions
Users sign in with their Seige account and approve your app in a Seige window. There is no client ID, callback page or secret to set up; Seige identifies your app by its website.
A database
seige.from(table) reads and writes records with select, insert, update and delete. There are no access policies to write: each user’s database belongs to that user.
File storage
seige.files.put(path, file) stores attachments, encrypted before upload, in your app’s folder in the user’s account.
AI
seige.ai.generate({ prompt, input }) answers with the input your feature sends. Seige holds the model credential and enforces usage limits.
Data that belongs to your users
Files and records live in the user’s account, not on your servers. A compatible app can read them with the user’s permission.

When Seige fits, and when it does not

Seige suits browser apps where each signed-in user works with their own data: trackers, journals, notes, budgets, reading lists, personal dashboards and AI helpers for that data.

Use other infrastructure when the app needs:

  • many users editing the same records, as in chat or team workspaces;
  • public data that visitors read without signing in;
  • server-side queries, hosted functions, webhooks or scheduled jobs.
Your users need Seige accounts

Account creation is currently open to invited usernames.

Give your coding agent the integration guide

Copy the instructions below into your agent’s context. The SDK reference supplies method signatures, operating limits and recovery behavior, and the guide for coding agents explains when to choose Seige.

Verify with a real write

npm install @seige_sdk/sdk

Then run the browser quickstart. It saves a row and a file and reads both back from the copy stored in Seige. Count the integration as working at that verified remote write, not at a local query or a queued upload.

Choose data another app can read

Keep records in tables and attachments in ordinary file formats. A replacement app needs to understand your format after the user grants it access. For constraints such as unique or required columns, define tables in SQL migration files; Seige records which ones have run inside the user’s database.

Writes are encrypted in the browser. Database writes are saved to Seige before the call returns; file writes return once stored in the browser and are published in the background. During an outage, writes stay in an encrypted queue and are retried.

Give AI only the input your feature needs

The first seige.ai.generate() call asks the user for AI access. It is a standard model endpoint, not an agent: it has no tools and no access to the account, and sees only the input your feature sends. Your app does not hold a provider key. Prompts and input are processed remotely for inference; storage encryption and AI access are separate protections.

Start with the app’s own folder, and ask for other folders only when the user invokes a feature that needs them. Sign-out ends the session in this browser; disconnecting in Seige stops remote access without deleting account data.

Questions

Does my coding agent need API keys or a project to use Seige?

No. Seige identifies a browser app by its website. The agent installs one npm package and calls createSeige(); the user approves the app in a Seige window the first time it needs their account.

Where is my users' data stored?

In each user's own Seige account, encrypted in the browser before upload. Your app gets a folder in that account and can reach other folders only if the user shares them.

Do I need to write row-level security policies?

No. Each user's database belongs to that user, so there are no access policies to write or misconfigure.

Can I call an AI model without exposing a key?

Yes. seige.ai.generate() runs from the browser. Seige holds the model credential, the user allows AI access, and requests use the user's Seige AI allowance.

When is Seige the wrong backend?

When many users must edit the same records, when the app serves public data to visitors who are not signed in, or when work must run on a server on a schedule.