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
  • Email
  • Nightly backup

In Switzerland

  • Second backup copy

Outside services: region set by the provider

  • Background jobs
  • Backup email delivery

Part by part

PartWhereWhat happens there
Database and filesFrankfurt, 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 APIFrankfurt, Germany (Vercel fra1), with a worldwide edge networkVercel 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 machineFrankfurt, 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 engineFrankfurt, 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 checksFrankfurt, 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.
EmailFrankfurt, 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 backupFrankfurt, 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 copySwitzerland (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 jobsInngest's cloud; region set by the provider, may be outside the EUInngest 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 deliveryResend's cloud; region set by the provider, may be outside the EUResend 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.

ProviderWhereWhen
GitHubGitHub's cloud; region set by the provider, may be outside the EUOnly 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 providerOnly if you sign in with Google
Microsoft (Sign in with Microsoft)Microsoft's cloud; region set by the providerOnly if you sign in with Microsoft
Your browser's push serviceRun by your browser's maker; region set by themOnly if you switch on push alerts
StripeStripe's cloud; region set by the providerOnly when you order. Ordering opens at launch; until then nothing is charged