Last updated · May 8, 2026
Cookies & Storage Policy
CodeFlow doesn't set cookies. The site does keep a small amount of state in your browser's localStorage so your work survives a reload. Here's every entry, why it exists, and how to clear it.
2 · What we store, key by key
Every entry is created the first time you use the relevant feature.
codeflow:progress:v1Tracks which lessons you've completed and the last act you were on (so we can show a “you left off here” cue). JSON object — small.
Created by:
src/hooks/useProgress.ts. Reads: any concept page. Lifetime: until you clear browser storage.codeflow:focus-modeWhether you've toggled focus mode on. A single boolean.
Created by:
src/lib/focus-mode.tsx(FocusModeProvider). Reads: every page. Lifetime: until you clear browser storage.codeflow:playground:v1The source code you've typed into the Playground, per language tab. Stored so reloading
/playdoesn't lose your work. JSON object.Created by:
src/lib/playground/use-playground-state.ts. Reads: only/play. Lifetime: until you clear browser storage.codeflow:library:clicks:v1A rolling tally of the last 200 outbound book-link clicks you made on
/library— book slug, store, timestamp. Stored locally so we can see which recommendations are useful; we do not transmit this anywhere.Created by:
src/components/library/BookCard.tsx(trackClickhandler). Reads: nothing reads it automatically — it's available for you to inspect vialocalStorage.getItem('codeflow:library:clicks:v1'). Lifetime: until you clear browser storage.codeflow:library:disclosure-ackWhether you've dismissed the per-page affiliate disclosure that previously sat on
/library. Legacy — the site-wide notice banner now covers this; the key is harmless if present and ignored if absent.Created by:
src/components/library/AffiliateDisclosure.tsx(component currently unused). Lifetime: until you clear browser storage.codeflow:data-notice-ackThe version of the privacy/terms notice you last acknowledged via the “Got it” button on the site-wide banner. A small integer string. When we update the policy materially, we bump the version number and you'll see the banner again, marked “Updated”.
Created by:
src/components/legal/DataNoticeBanner.tsx. Reads: the same component on every page (banner suppressed on/privacy,/terms,/cookies). Lifetime: until you clear browser storage.
Total: six named entries. None of them are cookies; none of them are sent to our servers; none of them include personally identifying information beyond what you typed yourself (e.g. into the Playground).
3 · Third-party storage by page
When you open certain pages, third-party services we embed may set their own cookies or storage on your browser. We are not in control of those, but they only load when you visit the relevant page.
| When you visit … | … you may receive storage from | Their policy |
|---|---|---|
/play (any tab) | CodeSandbox / Sandpack iframe | codesandbox.io/legal/privacy |
/play Python tab | jsDelivr CDN (Pyodide) | jsdelivr.com/privacy-policy |
/library | Open Library / Internet Archive (book covers) | archive.org/terms |
After clicking “Buy on …” on /library | Amazon or Manning (you leave our site) | Amazon · Manning |
| Any page | Vercel (hosting, sees your IP for routing) | vercel.com/legal/privacy-policy |
We do not use Google Analytics, Facebook Pixel, or any behavioural-tracking script. Fonts are self-hosted via next/font, so the site does not contact fonts.googleapis.com at runtime.
4 · How to manage or clear
You can clear everything in this list whenever you want. The data lives in your browser, not on our servers, so clearing it from your side is the complete operation.
The fastest way:
- Browser settings — open your browser's privacy/cookies settings and choose “Clear site data” (or the equivalent) for the CodeFlow domain.
- DevTools — open Developer Tools, go to the “Application” tab (Chrome / Edge) or “Storage” tab (Firefox / Safari), expand
Local Storage, find the CodeFlow origin, and delete any of the keys listed in §2. - Incognito / Private window — opens with no stored data and discards everything when you close the window.
You can also block all storage globally in most browsers, but that will break parts of CodeFlow (your progress and Playground source won't survive a reload).
5 · Questions
Questions about anything on this page: anointtech@gmail.com
See also the Privacy Policy and Terms of Service.