Cookie Policy

Last updated: August 20, 2026

What This Policy Covers

This policy explains how LLM Primer uses cookies, local storage, and IndexedDB. Cookies are small values that your browser sends back to the website with later requests. Local storage and IndexedDB keep data inside your browser and are not sent automatically with every request.

LLM Primer Cookies

LLM Primer sets the following cookies for llmprimer.com when you start or use a signed-in account:

  • Session cookie: keeps you signed in. It contains a random token, is sent only over encrypted HTTPS connections, cannot be read by page scripts, and normally expires after 30 days.
  • Sign-in state cookie: protects the temporary Google or GitHub sign-in flow. It cannot be read by page scripts and normally expires after 10 minutes.
  • Request-security cookie: helps confirm that account-changing and synchronization requests came from the signed-in browser. Page scripts can read this random security value so they can return it with protected requests. It normally expires after 30 days.

These cookies use the Secure setting, which limits them to HTTPS, and SameSite=Lax, which limits when they are sent from another site. The session and sign-in state cookies are also HttpOnly, so page scripts cannot read them. They are used for sign-in and security, not advertising or cross-site tracking.

Cloudflare and Sign-In Providers

Cloudflare may set strictly necessary cookies or use comparable security signals to deliver the site, manage traffic, and detect abuse. When you choose Google or GitHub sign-in, that provider may use cookies on its own pages under its policy. LLM Primer does not control provider cookies.

Analytics

LLM Primer uses Cloudflare Web Analytics for aggregate visits and real-user performance measurements. Cloudflare states that this service does not use cookies or local storage for its measurements and does not track individual visitors across customers' websites.

If you explicitly allow it, LLM Primer also loads Google Analytics for aggregate page measurement. Until you choose, the Google tag does not load or receive a request. We keep advertising storage, advertising user-data sharing, ad personalization, and Google Signals disabled. We do not send notes, answers, account identifiers, or learning events to Google Analytics. Google may set analytics cookies after you allow measurement and processes data under its own policies.

Local Storage and IndexedDB

LLM Primer uses browser storage to keep:

  • light or dark appearance and accent-color preferences;
  • your optional Google Analytics preference;
  • lesson progress, review choices, exercise state, and reset records;
  • Browser Python status and diagram settings you choose to save;
  • highlights, notes, their page anchors, and panel preferences;
  • local study-session information; and
  • device identifiers, synchronization cursors, and pending changes used to retry cross-device synchronization safely.

Some records are scoped to an anonymous browser or a signed-in account. Signed-in records can also be synchronized to LLM Primer's database. The Local Data page explains what remains on the device and how to clear or import it.

Your Controls

Browser settings let you inspect, block, or delete cookies and site storage. Blocking LLM Primer's cookies prevents sign-in and account synchronization. Clearing cookies signs you out. Clearing local storage or IndexedDB can remove unsynchronized progress, notes, preferences, or queued changes. Public lessons should remain readable without account cookies or persistent browser storage.

You can change this browser's optional analytics preference below. A change to decline stops future Google Analytics page measurement and requests that the Google tag deny analytics storage. It does not undo processing that occurred before you changed the setting.

Changes

This policy may change when browser features or service providers change. The date above shows the latest revision.

Contact

For questions about cookies or browser storage, email contact@llmprimer.com or use the Contact page.