Privacy Policy

Effective July 27, 2026

SanityCheck.dev is a product of VCG Labs LLC, a New Jersey limited liability company ("SanityCheck", "we", "us"). We don't sell your data. We don't use it for advertising. We don't train AI models on it. This policy explains what we collect, why, and who else processes it — organized by the parts of the service that touch your data. Because SanityCheck signs in to your applications on your behalf, the section on credentials is worth reading closely.

Signing in

You can create an account with an email address and password, or sign in with Google or GitHub. With email and password, we store your name, email address, and a salted hash of your password — never the password itself. Email verification is required.

With Google or GitHub sign-in, the provider handles your credentials directly and we never see your password. We receive and store your name, email address, avatar image, and the OAuth tokens the provider issues so we can keep you signed in. We request only basic profile scopes — we do not ask for access to your Gmail, Google Drive, or GitHub repositories when you sign in.

Our use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

Your applications and test credentials

When you register an application we store its name, base URL, allowed and denied domains, testing rules, and any notes. Credentials you save for a target application are encrypted at rest with AES-256-GCM using a key held outside the database. They are decrypted only at the moment an agent needs to sign in to that application during your test, and are never returned to the browser, shown in the UI, or included in the prompt sent to an AI model.

We redact credential values from the run timeline and stored error messages. Be aware of two real limits:

  • signing in necessarily means typing the password into the target application, inside a cloud browser session that is recorded — so treat those recordings as sensitive;
  • anything you type into a free-text field such as a test's "input data" is stored as written and is sent to the AI model as part of the prompt. Do not put secrets there — use the credentials field, which is encrypted.

Use a dedicated test account with the least privilege that still exercises what you want to test. Do not store credentials for an account that can move money, delete production data, or access other people's personal information.

Test runs and browser recordings

For every test run we record what the agent did: its reasoning, the actions it took, pages it visited, screenshots it captured, browser console output, network requests it observed, a video recording of the browser session, and the final result. This can include whatever data is visible in the application you are testing. Cloud browser sessions run on Browserbase; screenshots and uploaded test fixtures are stored privately on Vercel Blob and served only through authenticated requests.

GitHub integration

If you connect the SanityCheck GitHub App to trigger tests on deploy, we request only read-only access to Deployments and Metadata. We store the installation identifier and the list of repositories you grant access to (their IDs and names), and we receive deployment webhook events for the repositories you connect. We never read your source code, and you can uninstall the app from your GitHub settings at any time.

GitLab integration

If you connect GitLab to trigger tests on deploy, we use GitLab OAuth with the apiscope — GitLab's smallest scope that allows creating project webhooks, which is what we need. This is a broad permission, so we want to be clear about how we use it: we read your project list so you can pick projects to connect, and we create a webhook on the projects you choose. We do not read your source code, issues, or merge requests. Your GitLab access and refresh tokens are encrypted at rest with AES-256-GCM, and you can revoke the connection from SanityCheck or from your GitLab settings at any time.

Vercel integration

If you connect a Vercel project to trigger tests on deploy, you paste a project ID and a webhook signing secret. We store the secret encrypted at rest and use it only to verify that incoming deploy events genuinely came from Vercel. We do not access your Vercel account.

AI language models

Agents are driven by large language models from Anthropic, OpenAI, and Google, routed through the Vercel AI Gateway. During a run, the model receives your test description and directions, any "input data" you wrote, accessibility snapshots of the pages the agent visits, and screenshots. The model does not receive your stored application credentials. We use these providers via their APIs, which do not use your data to train their models, and we do not train any models of our own on your data.

Payments

Subscriptions are processed by Stripe. Your card details go directly to Stripe and never touch our servers — we store only a customer reference, your plan, and its status. Stripe's handling of your payment data is described in the Stripe Privacy Policy.

Analytics

We use PostHog for product analytics and error tracking so we can see which features are used, where the product breaks, and how to improve it. When you have an account, analytics events are associated with your name and email address. Analytics requests are served through our own domain, and PostHog processes this data on our behalf in the United States. We also use Vercel Web Analytics and Speed Insights, which collect aggregated, cookieless page-view and performance metrics. We do not use advertising trackers, and we do not share analytics data with advertisers or data brokers.

Email

We send transactional email — account verification, password resets, and replies to messages you send through our contact form — via Resend. If you write to us through the contact form, we receive the name, email address, and message you provide. We do not send marketing email you haven't asked for.

Technical information

When you sign in we create a session and record its IP address and browser user agent, which helps you and us spot suspicious activity. When you create an account we also record the IP address, the approximate location derived from it (country, region, and city), the browser used, and how you found us: the site that linked to us, the page you landed on, campaign parameters in that link, and any referral code. We use this to understand which channels bring people to SanityCheck and to detect abuse; it is never shared with the referring party beyond aggregate counts. We also keep standard server logs and error reports needed to run and debug the service, and rate-limiting counters that protect sign-in and password-reset endpoints from abuse.

How we use your information

  • To provide the service — running your tests and showing you results and history.
  • To bill you and prevent abuse of usage limits.
  • To support you when you ask for help, and to debug failures.
  • To understand how the product is used and improve it.
  • To keep the service secure and to comply with legal obligations.

We may disclose data if required by law, to prevent fraud or abuse, or as part of a merger or acquisition — in which case we will give notice before your data becomes subject to a different policy.

Information isolation

Data from the accounts and applications you connect is accessible only to you. Access to your data is scoped to your account and checked on every request; our software enforces separation between customers. Your run recordings, screenshots, and credentials are never visible to other users.

Subprocessors

We rely on these providers to operate the service. Each processes only what it needs to:

  • Vercel — application hosting, file storage for screenshots and fixtures, and the gateway through which AI model requests are routed.
  • Neon — the managed Postgres database holding your account, configuration, and run history.
  • Browserbase — the cloud browsers your tests run in. Sessions are recorded, which includes page content and network activity from the application under test.
  • Anthropic, OpenAI, and Google — the AI models that decide what an agent does next.
  • Stripe — payment processing and the billing portal.
  • PostHog — product analytics and error tracking.
  • Resend — transactional email delivery.

International transfers

Our infrastructure is hosted in the United States, and the providers above may process data there and in other countries. If you are in the EEA, UK, or Switzerland, these transfers rely on appropriate safeguards such as the European Commission's standard contractual clauses.

How long we keep it

Run history — including screenshots and recordings — is retained for at least the retention window included in your plan, and we may keep it longer for operational reasons. Deleting an application deletes its tests, runs, and recorded history.

We keep the minimum records needed for billing, tax, and fraud prevention after an account closes, and backups may persist for a short period after deletion.

Accessing, changing, or deleting your information

You can update your profile and delete applications, tests, and their run history directly in the app, and disconnect the GitHub, GitLab, and Vercel integrations at any time. To export your data or delete your account entirely, email [email protected] from your account address — we will revoke stored integration tokens promptly and delete your data from production systems within 30 days.

Depending on where you live, you may also have the right to access, correct, export, or delete your personal data, to object to or restrict certain processing, and to withdraw consent, and you may complain to your local data protection authority. Where you upload or expose other people's personal data to the service — for example by testing with real user records — you are the controller of that data and responsible for having a lawful basis to process it. Prefer synthetic test data.

Cookies

We use cookies to keep you signed in and to remember your interface preferences, and first-party analytics cookies that let PostHog distinguish visits and sessions. We do not use advertising cookies or cross-site tracking.

Children

SanityCheck is a developer tool and is not directed at children. We do not knowingly collect personal data from anyone under 16.

Security and vulnerability disclosure

Credentials and integration tokens are encrypted at rest as described above, all traffic is served over HTTPS, and screenshots and recordings are served only through authenticated requests. No system is perfectly secure. If you find a vulnerability, please report it to [email protected] with reproduction steps rather than testing it against other customers, and keep it confidential until a fix is available.

Changes

We will update this policy as the service changes and will give reasonable notice of material changes. The effective date above always reflects the current version. Using the service means you agree to this policy.

Contact

VCG Labs LLC, New Jersey, USA
[email protected]

See also our Terms of Service.