v0.9.1·last updated 2026-04-23·verify on github

How Stay actually works.

Stay's trust model depends on specifics, not vibes. This page documents exactly what the software does, what the network does, what we can see, and what we cannot. Every claim here is directly verifiable against the open-source code.

The short version

The stack

What happens when you send a message

  1. Your browser posts to /api/chat with the recent message history (last 60 messages, capped at 80KB total).
  2. Edge middleware checks your IP against an in-memory token bucket (30 requests per minute). Blocked requests get 429 and the client shows the outage panel with crisis numbers.
  3. The serverless function wraps your messages with the system prompt (cached by Anthropic for 5 minutes) and the tool definitions, then calls Anthropic's Messages API with streaming enabled.
  4. Anthropic's servers generate a response. Per Anthropic policy, the content is not used to train their models and is deleted within 30 days (unless flagged for abuse review).
  5. The stream comes back to our function, which re-encodes each text delta and tool-use block as an NDJSON line and streams it to your browser.
  6. Your browser appends each chunk to the visible message and, at the end, encrypts the full conversation using your device key and writes it to IndexedDB.

Encryption

What each party can see

partycan seecannot see
You (the user)everythingnothing
Stay's serverIP + timestamp of API requests (for rate-limiting, not logged to durable storage)message content, identity, past conversations
Anthropicthe system prompt + your messages in the current request, transiently, for <30 dayswho you are, past conversations we didn't send
Vercel / Cloudflarerouting metadata (IP, TLS handshake, timestamps)HTTPS-encrypted message content
Anyone on your browseryour encrypted conversations (the key is also on this browser)(nothing — same as your other browser data)

The safety mechanisms

What we do not do

Limits of the trust model

We want to be explicit about what this architecture doesn't protect against:


The entire source is at github.com/wudaming00/stay. If any claim on this page is wrong — or if the code does something this page doesn't describe — please open an issue or email hello@thestay.app.

See also: promises · privacy · terms