← Security
Subprocessors
Every third party in the path, and exactly what it can see. This register is referenced by our Data Processing Agreement.
| Subprocessor | Purpose | What it can access | Plaintext values |
|---|---|---|---|
| AWS KMS | Key wrapping (envelope encryption) | Key material only. | none |
| Neon (Postgres) | Primary database | Ciphertext and metadata. Values are encrypted before they land. | none |
| Vercel | Application hosting & edge | Request routing, a coarse geo hint, and the compute that decrypts a value to serve it. | in memory |
| Google Analytics | Page visit counts, only after you accept the cookie notice | Page paths, a truncated IP address, and browser details. | none |
| Resend | Sends transactional email | The recipient address, the subject, and the body of the message. | none |
| Upstash | Rate-limit counters and job locks | A counter and a key derived from an account or a source IP address. | none |
| Stripe | Payments (default processor) | Billing and payment data. | none |
| Paystack | Payments (African markets) | Billing and payment data. | none |
The encryption boundary is the point. AWS KMS handles key material and Neon stores ciphertext plus metadata, so plaintext values stay outside both. For how that boundary is built, read the security page.