What this site does and doesn't do with your data.
Short version: I don't track you. There's no analytics tag, no advertising pixel, and no sign-up. The only things stored on your device are your own UI preferences. The chatbot processes your messages but doesn't keep them.
What I store on your device
The site uses localStorage to remember three preferences,
each tied to a fixed allow-list:
- Theme —
darkorlight. - Accent colour — one of eight preset keys (e.g.
orange,cyan). - Font theme — one of six preset keys (e.g.
editorial,terminal).
No cookies. No personal data. Clearing your browser storage resets the site to defaults.
What the chatbot does with your messages
When you chat with me here, your message is sent to a Cloudflare Worker that runs a small retrieval-augmented-generation pipeline over my portfolio content. The Worker:
- Does not log your messages.
- Does not retain them after the response is generated.
- Does not pass them to any third-party analytics or training pipeline.
- Routes them to either Cloudflare Workers AI (Llama 3.1) or the Anthropic API depending on configuration. Both providers have their own privacy policies — they may briefly log requests for abuse prevention, per their stated retention windows, but neither retains for training in the configured mode.
Conversation history is kept in your browser tab only, for the current session. Refresh the page and it's gone.
Third parties the site requests from
The site loads a small number of public, cacheable assets from third-party CDNs. None of these involve your personal data:
- Google Fonts — for typography. Logged by Google per their privacy policy.
- shields.io — for the GitHub last-commit / stars badges on project cards.
- ghchart.rshah.org — for the GitHub contribution graph (lazy-loaded only when you scroll to the section).
- i.ytimg.com / youtube-nocookie.com — for video thumbnails and embedded players, only after you click them. The lite-embed pattern means YouTube's tracking scripts don't load until you opt in.
- storage.googleapis.com — for the in-browser TensorFlow.js sentiment model, fetched only when the Live Lab section enters your viewport.
What's not on this site
- No Google Analytics. No Facebook pixel. No tracking pixels of any kind.
- No advertising.
- No social-network embed scripts.
- No sign-up form, account creation, or persistent identity.
Your rights
Under UK GDPR you have the right to access, rectification, and erasure
of any personal data I hold. I don't hold any. If you've sent me an
email at paulmcneill1989@hotmail.co.uk, that email is
retained in my mailbox until I prune it. Email me to request its
deletion.
Contact
Privacy questions: paulmcneill1989@hotmail.co.uk.