Privacy policy
Last updated 2 September 2026.
GoodRepo collects as little as it can. There are no advertising trackers, no third-party analytics cookies, and nothing is sold. This page says exactly what is kept and who else touches it.
Scanning without an account
Scanning a public repository needs no account and stores nothing about you. GoodRepo reads the repository through the public GitHub API and keeps the finished report in a cache keyed by the commit it scanned, so the next person asking for the same commit gets the same answer without a second scan. That cache holds facts about the repository, not about the person who asked.
If you sign in
Signing in is only through GitHub. There are no passwords here, and no email is ever sent. GitHub gives us, and we store:
- Your GitHub user ID, username, display name and avatar URL.
- The email address on your GitHub account.
- An access token and a refresh token, used to read repositories on your behalf. Tokens expire, and are refreshed only while you keep using the site.
- A session, held in a cookie in your browser.
The session cookie is strictly necessary to keep you signed in. It is the only cookie GoodRepo sets.
The token carries no broad permissions. GoodRepo is a GitHub App, not an OAuth app, so it can read only the repositories you install it on, and only the parts it asked for (contents and metadata, read-only). It can never see a repository you could not see yourself, and it can never write.
Private repository scans
A private scan reads the repository using your own token, at the moment you ask for it. The result is never cached and never written to disk. It exists for the length of the request that produced it and nothing else. Nobody else can load the report, and the report cannot outlive your access to the repository.
Deep scans
A deep scan checks out the repository into a short-lived sandbox and asks a language model a fixed set of questions about it. Source code from the repository is sent to that model to be answered. Deep scans run on public repositories only.
For each deep scan we record one row:
- Your account ID, the repository owner and name, and the commit.
- When the run happened.
That row exists to enforce the daily and monthly limits and to keep re-reading a report you already ran free. Deleting your account removes the link to you but keeps the row, so a month’s spend cannot be reset by deleting an account.
Analytics
The site uses Vercel Web Analytics, which counts page views without cookies and without building a profile of you. It does not follow you to other sites.
Who else sees your data
- Vercel hosts the site, runs the sandbox, routes model requests and provides analytics. Vercel sees request logs.
- Supabase hosts the Postgres database holding accounts and deep-scan records.
- GitHub is the source of every repository we read and the only sign-in provider.
- Anthropic is the model provider used for deep scans. Repository content sent for a deep scan is not used to train models.
Nothing is sold, rented, or shared with anyone else.
How long things are kept
- Account details and tokens: until you delete your account.
- Deep-scan records: kept, with the link to your account removed when your account is deleted.
- Cached public reports: until the scanning rules change.
- Private scan results: not kept at all.
Your choices
- Stop private access: uninstall the GoodRepo GitHub App, or remove a repository from it, in your GitHub settings. Access ends immediately.
- Sign out: clears the session cookie.
- Delete your account, or ask for a copy of your data: write to jordan@jtlee.dev.
Depending on where you live you may also have the right to correct your data, object to its use, or complain to a data protection authority. Ask and we will help.
Children
GoodRepo is not intended for anyone under 13, and we do not knowingly keep data about them.
Changes
We may update this policy. The date at the top says when it last changed.
Contact
Privacy questions: jordan@jtlee.dev. See also the terms of use.