Skip to content
MISSIONBuilding to $50K/year · partnership threshold — every $20 subscription reserves 10 meals in the fund. Report published monthly.SEE THE PROGRESS →
SECURITY · TECHNICAL POSTURE

Specifics, not slogans.

Encryption, sessions, backups, and what we’d do if a specific thing broke. For the “why we don’t train on your chats” and subprocessor list, see /trust.

THE POSTURE
TLS EVERYWHERE1.3 · HSTSNo plaintext hops between you and us, or between us and Anthropic.
AT RESTAES-256Every row of chat and account data encrypted at the storage layer by Supabase (managed Postgres on AWS).
SESSIONHTTPONLY · SAMESITE=LAXSupabase auth cookie only. No advertising trackers and no fingerprint scripts — we do run PostHog analytics and Sentry error monitoring, both disclosed at /legal/subprocessors, and analytics is opt-out in Settings → Data.
PASSWORDSBCRYPT · SALTEDHashed by Supabase Auth; we never see or store plaintext. We cannot retrieve your password — a reset flow is the only path.
MFATOTP · ENFORCED AT LOGINAuthenticator app 2FA with backup codes, available on any account. Once enrolled, login requires the second factor. WebAuthn/passkey on the roadmap.
BACKUPSEncrypted · 7-day retentionAutomated daily backups from Supabase on our current plan. Extending to 30-day point-in-time recovery is a planned upgrade before public launch — our 30-day deletion window is a separate guarantee, documented at /legal/privacy.
DATA HANDLING

In transit

Every network hop uses TLS 1.3 with HSTS. No plaintext traffic between you, our app, our database, or our inference provider.

At rest

Chat contents + attached files are encrypted at rest via Supabase's disk encryption (AES-256 on AWS). Backup snapshots inherit the same encryption.

In inference

Your message is transmitted to Anthropic over TLS, processed ephemerally, and the response is streamed back. Anthropic's retention policy on the API tier we use applies to inference-time storage.

In our logs

Application logs contain routing metadata (timestamps, response times, error codes) but not message contents. Retained 90 days for security audit.

WHAT WE DON’T DO

The absence list.

  • ○No client-side tracking beacons. No Google Analytics. No Mixpanel. No Segment. No Meta pixel.
  • ○No third-party scripts on chat pages other than Stripe's checkout iframe when you're actively subscribing.
  • ○No employee has read-access to individual chat contents. Admin tooling shows account state (subscription, meal ledger) but not messages.
  • ○No shared secrets in code — everything sensitive is in a secrets manager, not a .env checked into a repo.
  • ○No unencrypted database backups — full stop.
REPORT SOMETHING

One address. One-day acknowledgment.

Email privacy@ladle.chat with the details. PGP available at ladle.chat/pgp for sensitive reports. Acknowledged within 1 business day; critical (active exploitation) escalated immediately if you mark the subject [URGENT-SECURITY]. We don’t run a paid bounty; we run a coordinated-disclosure process with public acknowledgment on request.

Specifics on this page. More on /trust.

If something isn't answered, email us — one real person, one day.

Start with LADLE — $20/moSee /trust
$20/MO · CANCEL ANYTIME · $0.80/MEAL · RECEIPTS MONTHLY
Read the ledger →
0meals fundedROLLING TOTAL · UPDATED HOURLY
SEE THE RECEIPTS →