Legal
Cookie Policy
The cookies and local storage Bates Math uses, and why there is no consent banner.
Effective 14 September 2026. Operator: Bates Publishing. Questions: contact the developer at lagodaoleg1357@gmail.com.
Summary
Bates Math sets strictly necessary first-party cookies so a Google sign-in can become a session on this site, and so answers typed on Get started can be applied after Google returns. We do not set advertising, analytics, social, or marketing cookies. We do not drop a cookie to remember a cookie choice, because there is no non-essential cookie to choose.
Because only strictly necessary cookies are used, we do not show a cookie consent banner. Appearance and tutor threads use local storage on your device, which is not a cookie and is not sent with ordinary page requests. See the Privacy Policy for how account data is processed.
What cookies are
A cookie is a small piece of data a site stores in your browser and may send back on later requests. Strictly necessary cookies are the ones without which a requested service cannot be provided — here, staying signed in after Google returns you to Bates Math.
Cookies we set
Cookie names include a Supabase project reference, so they appear as a pattern rather than a single fixed string. They are first-party: they are set for this site, not for an advertising network.
| Name | Purpose | Duration | Category |
|---|---|---|---|
| sb-*-auth-token (and .0 / .1 chunks) | Holds the signed-in Supabase session after Google sign-in so the app can keep you logged in across page loads. | Until you sign out or delete the account. Refresh tokens follow the lifetime configured on the Supabase project (typically measured in weeks). | strictly necessary |
| sb-*-auth-token-code-verifier | Stores the PKCE code verifier for the few seconds between leaving for Google and returning to /auth/callback. | Minutes; removed when the sign-in completes or fails | strictly necessary |
| bm_pending_profile | Holds the name, subjects, and optional attribution entered on Get started. The value is HMAC-SHA256 signed with a server secret (PENDING_PROFILE_SECRET) and bound first to a one-time nonce for this Google round-trip, then to the signed-in user id after callback. Tampered or leftover cookies are rejected and cleared. HttpOnly; Secure in production; SameSite=Lax so it is sent on the Google return. Not readable by page scripts. | One hour, or until the profile is saved or the cookie is discarded because it must not apply | strictly necessary |
Signing out or deleting the account clears the session cookies we can reach. Your browser may still hold Google's own cookies on google.com; those are Google's.
Local storage
These keys live in your browser's local storage. They are not used to track you across other websites.
bates-theme— Remembers the appearance you chose: light, dark, system, Sunny Colorado, or Colorado Dusk. (all visitors)bates-tutor-threads-v1— Stores Ask Bates conversation threads on this browser only. (student)bates-tutor-active-thread-v1— Which Ask Bates thread is currently open on this browser. (student)bates-agent-chats-v4— Staff-only Bates Agent chat threads on this browser. (staff)
Other sites during sign-in
When you press “Continue with Google,” you leave Bates Math for Google's accounts pages. Google may set cookies on its own domain under Google's privacy policy. We do not read those cookies.
Our hosting provider may set cookies that are strictly necessary to deliver the site or to protect a preview deployment. We do not use Vercel Analytics or similar product-analytics packages in this codebase.
Why there is no consent banner
EU and UK rules require consent before non-essential cookies (and similar tracking technologies) are set. Strictly necessary cookies used to provide a service you asked for — signing in, and carrying the Get started answers across the Google redirect — do not need that consent. A banner that cannot change any cookie we set would be a fake control. We will not ship one.
If Bates Math ever adds a non-essential cookie (for example a measurement cookie that is not required to run the lesson), we will update this policy, set COOKIE_CONSENT_REQUIRED in the product, and ship a prompt that actually blocks that cookie until you opt in. Until then there is nothing to opt into or out of except signing out, which ends the session cookie.
How to control cookies
- Sign out to end the Bates Math session cookie.
- Delete the account in Settings to erase the account behind it.
- Clear this site's cookies and local storage in your browser to remove the session, theme, and on-device tutor threads.
- Blocking all cookies for batesmath.com will prevent staying signed in. That is expected: the session is a cookie.
Changes
If the cookies we set change, this page will change with them, including the effective date.
Contact
Questions about cookies or this policy: contact the developer at lagodaoleg1357@gmail.com.