About

Privacy

This is my personal site. Here’s what it keeps about you when you look around, chat with chatGPTom, or play in the town, and who else sees it. There are no ads, and no trackers beyond the analytics below.

Visiting

Vercel hosts the site, so like any web host its servers see your IP address and browser when you load a page. I count page views with Vercel Web Analytics, which doesn’t use cookies.

The fonts come from this site. Pictures and videos come from Vercel’s storage. A YouTube video only loads, from youtube-nocookie.com, when you press play, and booking a Ditherface portrait opens cal.com in the page. A project with a GitHub repository asks GitHub for its star count, so your browser talks to GitHub when you open one. Those services have their own privacy policies.

chatGPTom

Your conversation lives in your browser’s memory, and reloading the page clears it. Each time you send a message, the whole conversation goes to the site, which passes it through Vercel’s AI Gateway to the models that answer: Anthropic’s Claude writes most replies, an OpenAI model matches your newest message to answers I’ve already written, and TypeSafe AI’s Jev model sorts messages and checks what you send me for spam. The site doesn’t save conversations; the AI providers handle what they receive under their own terms.

To stop people abusing the chat, Vercel BotID checks that a real browser is sending, and the site counts messages by IP address. Those counts expire within a day. An address that keeps breaking the limits is blocked from the chat for a day, or a week if it happens again within 30 days, and the site’s logs note the address and why.

When you send me a message or feedback, it comes to my email through Resend, with the name and email you give so I can reply. Feedback also includes the page address, which holds where you are in the town, your window size, and your browser’s user agent.

The town, the workyard and the guestbook

Once the town opens, your browser connects to the workyard’s server on Cloudflare. It turns your IP address into a short hash, to limit how many tabs, signings and passkey requests come from one place, and doesn’t save it.

In the workyard, other visitors see your character: a name dealt from a list, a shirt colour, where you are and what you’re doing. When I’m in the town I can see every visitor in it, wherever they are.

Signing the guestbook makes you a member, with a number and a dealt name, and you can add a handle. Members see each other anywhere in town, and the guestbook lists recent members’ names, handles and when they signed. The server keeps your number, name, handle, when you signed and a hash of your member key. If you add a passkey, it keeps the passkey’s public key, never anything from your fingerprint or face, and your save (what you’ve found, your progress, your items and outfit) so you can pick up on another device. That stays until I remove it, and clearing your browser doesn’t remove it.

Members can chat in the workyard. Lines go live to whoever can see you, and each is checked against word lists and Cloudflare’s Llama Guard model. They aren’t saved, unless someone reports you: then your last 20 lines are kept for 7 days so I can look at them.

In your browser

The site sets a cookie only if you unlock the Prism case study with its password (it lasts 30 days), and one for me when I sign in to edit. Your browser’s local storage keeps your theme, sound settings, panel width, where you were in the town, whether you’ve seen the intro, your items and outfit, what you’ve found, and your guestbook membership. It stays until you clear it, and none of it leaves your browser except your membership and, with a passkey, your save, which go to the workyard as above.

Questions

If you’d like your guestbook entry removed, or have a question about any of this, send me a message with chatGPTom or find me on LinkedIn or X.