Legal
Where your data lives
Where yof stores your data and where it runs, part by part. Written from our code and hosting settings.
Last checked: 7 November 2026. This page is in English for now. A translation is coming.
At a glance
In Frankfurt, Germany (EU)
- Database and files
- Website, app and API
- Our operations machine
- AI engine
- Website checks
- Nightly backup
In Switzerland
- Second backup copy
Outside services: region set by the provider
- Background jobs
- Backup email delivery
Part by part
| Part | Where | What happens there |
|---|---|---|
| Database and files | Frankfurt, Germany (AWS eu-central-1) | Supabase runs our database and file storage in Frankfurt. It holds your account, your apps and their proof of ownership, checks, findings, orders, report files and Patch's records. |
| Website, app and API | Frankfurt, Germany (Vercel fra1), with a worldwide edge network | Vercel hosts yof's website, the app and the API. The API, which reads and writes your data, runs only in Frankfurt. Your browser reaches Vercel at its network point nearest to you, which passes each request on to Frankfurt; the public pages and the app's own files are also cached on that edge network so they load fast. |
| Our operations machine | Frankfurt, Germany (AWS eu-central-1) | A server we run ourselves on Amazon Web Services. It takes incoming mail to yof's addresses, sends outgoing mail and runs our own web search. It also makes the nightly backup. |
| AI engine | Frankfurt, Germany (AWS eu-central-1) | Patch writes code fixes with our own AI engine only, on a GPU server we operate in Frankfurt, never with an outside one. When that engine is not running, Patch fixes by its rules alone. Ask yof answers from your own apps and findings: while our engine is not yet switched on for customers, that answer is built from your data by rules, inside the API in Frankfurt. Our internal test accounts may also use a hosted test engine; customer accounts can never reach it. No outside AI company receives your code or your data. |
| Website checks | Frankfurt, Germany (AWS Lambda, eu-central-1) | The cloud browser that opens your proven website for a check runs as an AWS Lambda function in Frankfurt. It only loads public pages; it never signs in or sends a form. Its error logs are kept 14 days. |
| Frankfurt, Germany (Amazon SES, eu-central-1) | yof's email goes out through our own mail server, which hands each message to Amazon SES in Frankfurt. If our server cannot take a message, Resend delivers it instead (see below). | |
| Nightly backup | Frankfurt, Germany (Amazon S3, eu-central-1) | Every night our operations machine saves a full copy of the database to Amazon S3 in Frankfurt, encrypted, and keeps each copy 30 days. |
| Second backup copy | Switzerland (a Swiss cloud) | A second copy of the same backup is encrypted on our machine before it leaves AWS, then stored in a Swiss cloud and kept 35 days. The Swiss cloud only ever holds the encrypted file and cannot read it without our key. |
| Background jobs | Inngest's cloud; region set by the provider, may be outside the EU | Inngest Cloud starts our scheduled and background work. It receives job references such as a check id, an app id, your user id and a repository name. No code and no findings. |
| Backup email delivery | Resend's cloud; region set by the provider, may be outside the EU | Resend delivers yof's email only when our own mail server cannot take it. It then receives your email address, the subject and the message. |
Other outside services
Used only for the features named, and only when you use them. What each one receives is on the Subprocessors page.
| Provider | Where | When |
|---|---|---|
| GitHub | GitHub's cloud; region set by the provider, may be outside the EU | Only if you sign in with GitHub or install the yof GitHub App on a repository |
| Google (Sign in with Google) | Google's cloud; region set by the provider | Only if you sign in with Google |
| Microsoft (Sign in with Microsoft) | Microsoft's cloud; region set by the provider | Only if you sign in with Microsoft |
| Your browser's push service | Run by your browser's maker; region set by them | Only if you switch on push alerts |
| Stripe | Stripe's cloud; region set by the provider | Only when you order. Ordering opens at launch; until then nothing is charged |