Privacy
Privacy Policy
Last updated October 28, 2026
This policy explains what Mantle collects, why, where it goes and how long it stays. It is written to match what the software actually does.
In short
- We read only the repositories you choose, through a GitHub App you can remove at any time.
- To generate a migration, we send parts of your source code to Anthropic, which may not train on it.
- If you use Mantle Bot, your questions and the workspace records needed to answer them go to Anthropic. Mantle does not store the conversation.
- We keep what you need to review our work: file paths, call sites, the lines we changed with a few lines around them, and the results of your checks. We do not keep your repository.
- We do not sell your data, use it for advertising, or use tracking cookies.
Who we are
This policy covers the Mantle service at getmantle.dev (“Mantle”, “we”). For anything in it, contact armanc@getmantle.dev. Your use of Mantle is also governed by our Terms of Service.
What we collect
Account information
Your email address and name. If you sign in with GitHub or install our GitHub App, also your GitHub user ID and username, and if you sign in with GitHub, your avatar. If you sign in with Google, also your Google account ID. We ask Google only for your name, email address and picture, keep the picture nowhere, and never ask for access to your Gmail, Drive or anything else. When you sign up with an email address, we first send a link to confirm it; until you follow it we hold only the address and the IP address the request came from, and no account exists.
Page visits
We count visits to getmantle.dev with Vercel Web Analytics. It sets no cookies. A visitor is recognised for at most 24 hours, by a hash of the request rather than a stored identifier, so a visit cannot be followed from one day to the next or across sites. For each page view it records the time, the page, the site that linked to it, your approximate location (country, region and city), and your device type, operating system and browser. We send the page address without its query string, except campaign tags such as utm_source.
Credentials
If you set a password, we store only a bcrypt hash of it. If you turn on two-factor authentication, the secret is stored encrypted (AES-256-GCM) and your recovery codes are stored only as SHA-256 hashes. We cannot read your password or your recovery codes.
Sessions and security records
When you sign in we record your IP address and browser user agent against the session. We keep an audit log of account and security events: sign-ins, failed sign-in attempts, password and two-factor changes, and repository connections.
Agreement to the Terms
When you accept the Terms of Service, we record which version you accepted, when, and the IP address and browser user agent you used, so that we can show the agreement was made.
Workspaces and repositories
The workspaces you belong to and your role in each. The GitHub App installation, including which repositories it can reach and the permissions granted. For each connected repository: its name, default branch, language, package manager, dependency versions, and where your code calls the Stripe SDK.
Billing
Subscriptions are handled by Stripe. We receive your Stripe customer and subscription identifiers and your plan status. We never receive or store card numbers.
How your source code is handled
This is the part that matters most, so it is precise.
- Temporary checkout. To analyze a repository or generate a migration, Mantle downloads it into an isolated workspace. That workspace is deleted when the run ends, including when the run fails.
- What we keep. A record of each migration, so you can review it: the files and line numbers affected, the call sites and parameters involved, the exact lines Mantle changed (before and after) with up to three unchanged lines either side so each change can be read in place, a short summary of the model’s reasoning, and the output of your install, typecheck, lint, test and build scripts, up to 4,000 characters per check. We do not keep the rest of your repository.
- What we send to Anthropic. To generate a migration, Mantle sends the relevant source files to Anthropic, which provides the AI model: up to 25 files and 400 KB per migration. Mantle does not use your code to train models, and neither may Anthropic: its commercial terms say it “may not train models on Customer Content from Services.” Anthropic deletes API requests and responses within 30 days, except that a request flagged under its usage policy may be kept for up to two years.
- Pull requests. Each migration is pushed to your repository as a branch and pull request through the GitHub App. From then on that code lives in your GitHub account, under GitHub’s terms.
Mantle Bot
Mantle Bot is a chat assistant in the dashboard, available on paid plans. It runs only when you ask it something.
- What goes to Anthropic. Your question, the earlier messages in the same conversation, and the workspace records the bot looks up to answer it: integration and repository names, the Stripe changes Mantle detected, and the status of each migration. On paid plans it can also look up each migration’s changed lines (before and after) and the output of your checks. The same Anthropic terms apply: no training on it, and deletion within 30 days, as above.
- What Mantle keeps. Nothing from the conversation. It lives in your browser tab and is gone when you reload the page. Mantle logs that a question was answered, with token counts, and applies rate limits; it does not log what was asked or answered.
- What it can do. Read only. The bot cannot connect repositories, start migrations, merge pull requests or change settings, and it only sees your own workspace.
How we use it
- To run the service: detect API changes, analyze repositories, generate and verify migrations, and open pull requests.
- To keep it secure: authenticate you, limit abuse, detect attacks and keep an audit trail.
- To bill for it.
- To contact you about your account, including password reset messages.
We do not use your data for advertising and we do not sell it.
Who we share it with
These providers process data on our behalf, and only for the purpose listed.
| Provider | Why | What they receive |
|---|---|---|
| GitHub | Repository access, sign-in, pull requests | Account identifiers; repository contents through the GitHub App |
| Sign-in, when you choose Continue with Google | Nothing from us beyond the sign-in request; Google tells us your account ID, name, email address and picture | |
| Anthropic | Generating migrations | Excerpts of source code, up to 400 KB per migration |
| Anthropic | Mantle Bot answers, when you use it | Your questions, the conversation, and the workspace records needed to answer |
| Stripe | Subscription billing | Email, customer and subscription identifiers, plan |
| Resend | Account email: confirming your address at sign-up, and password resets | Email address and the message |
| Vercel | Hosting the website and dashboard | Everything above, while it is processed |
| Vercel | Counting page visits (Web Analytics) | The page, the referring site, approximate location, device type, operating system and browser |
| Vercel | Running your repository’s own checks, each in an isolated machine deleted afterwards | Repository contents, while the checks run |
| Railway | Running Mantle’s background worker, which analyzes repositories and prepares migrations | Repository contents and the records a job needs, while it runs |
| Sentry | Reporting errors in the background worker | Error messages and record identifiers, with credentials removed; occasionally a file path or an email address |
| Supabase, on Amazon Web Services | Storing Mantle’s records | Everything Mantle keeps |
We may also disclose information when the law requires it, or to protect the rights and safety of Mantle, our users or others.
Cookies
Mantle sets one cookie, mantle_session, which keeps you signed in. It is HTTP-only, so no script on the page can read it, and it expires seven days after you sign in, or when you sign out. A session unused for a day ends sooner. It is strictly necessary. Mantle uses no analytics, advertising or tracking cookies, and loads no third-party scripts: page visits are counted without cookies, by a script served from getmantle.dev itself.
Because Mantle does not track you across sites, a browser’s Do Not Track signal has nothing to turn off. Every visitor is treated the same way.
How long we keep it
| Data | Kept for |
|---|---|
| Repository checkouts | Deleted when each run ends |
| Sessions | Seven days at most: until you sign out, a day passes without use, or seven days pass since you signed in, then deleted |
| Password reset links | One hour, and usable once |
| Sign-up confirmation links, and the address they were sent to | One day, usable once, then deleted |
| Two-factor sign-in handoffs | Ten minutes, and usable once |
| Account, workspace and migration records | While your account is open, and deleted within 30 days of your asking us to delete it |
| Record of accepting the Terms | While your account is open, and deleted with it |
| Audit log | While your account is open, and up to one year after it closes, to investigate security incidents |
| Billing records | As long as US tax law requires, generally up to seven years |
Security
Passwords are hashed, second-factor secrets are encrypted, and every workspace’s data is kept separate: Mantle checks your membership before every read and write. Your code runs in a disposable workspace with no access to Mantle’s credentials. The GitHub App asks for the minimum permissions and never for a password or personal access token. More on how Mantle is secured.
Your choices and rights
- Remove access at any time by uninstalling the GitHub App. Mantle immediately loses the ability to read your repositories.
- Disconnect a repository in Mantle to stop it being analyzed. Records of past migrations remain until you ask us to delete them.
- Ask for a copy, a correction or deletion of your data by writing to armanc@getmantle.dev. We will respond within 30 days.
- If you live in California or another US state with a consumer privacy law, you can ask what personal information we hold about you, and ask us to correct or delete it. You can also ask us not to sell or share it, though we do neither.
- If you are in the European Economic Area or the United Kingdom, you also have the rights the GDPR gives you, including to object to how we process your information and to complain to your local data protection authority. We process it to provide the service you signed up for, and to keep it secure.
- We will not treat you differently for exercising any of these rights.
Where data is processed
Mantle runs in the United States. The website and dashboard are hosted by Vercel, Mantle’s background worker runs on Railway in Virginia, your repository’s checks run on Vercel in Virginia, error reports from the worker are stored by Sentry in the United States, and Mantle’s records are stored by Supabase on Amazon Web Services in Northern Virginia. If you use Mantle from outside the United States, your information is transferred there. Where the law requires a safeguard for that transfer, we rely on the ones our providers offer in their data processing terms, such as the European Commission’s Standard Contractual Clauses.
Children
Mantle is a tool for software developers and is not directed at children under 16. We do not knowingly collect their information.
Changes to this policy
When this policy changes we will update the date at the top. For material changes, we will tell account holders before they take effect.
Contact
Write to armanc@getmantle.dev with any question about this policy or your data.