Skip to content

Privacy & cookies

This is a personal portfolio. It collects as little as possible, sets no advertising or third-party tracking cookies, and asks for consent before storing the one cookie on your device that is not strictly necessary.

Cookies

CookiePurposeCategory
visitor_idAn anonymous, random per-browser key used to keep feature rollouts consistent for you and to let the backend rate-limit fairly. It identifies a browser, not a person.Functional — only set after you accept.
cookie_consentRemembers whether you accepted or declined the functional cookie, so you are not asked again.Strictly necessary.
Auth sessionKeeps you signed in if you log in (encrypted session, set by Auth0). Only present for signed-in visitors.Strictly necessary.

Analytics

Page-performance data (Core Web Vitals) is collected with Vercel Speed Insights and a small first-party beacon. Both are cookieless, store nothing on your device, and carry no identifier — just anonymous timing numbers per page. There is no Google Analytics, no advertising pixels, and no cross-site tracking.

Data kept in your browser

Some features remember your preferences in your browser's local storage — your light/dark theme, weather-effect settings, and various per-feature state (game scores, audio settings, and so on). This never leaves your device and is not sent anywhere.

Changing your choice

Declining leaves the site fully working — feature rollouts just fall back to a default and rate-limiting uses your IP. To change your mind, clear this site's cookies in your browser and the consent banner will appear again. Questions? Reach me from the home page.

This site uses one functional cookie to keep feature rollouts consistent for you. Nothing is set until you choose. See the privacy notice.