You can read this whole site without telling me anything.
Reading needs no account, cookie banner, or consent dialog. Everything below covers the small amount of data the site still uses, plus records left by features that have been retired.
I keep the least I can get away with, and I never sell it. If an old record still belongs to you, email me and I will remove it.
What I hold, and how to get rid of it
Nothing in this table exists until you do the thing in the second column.
A random token in a cookie
Created when: The first time you like anything
Why: So the same browser cannot like one thing twice
Getting rid of it: Clear your cookies and it is gone. It expires by itself after about 13 months
Your address, turned into something that is not your address
Created when: The same moment
Why: A second dedupe signal, so one person with two browsers is still one like
Getting rid of it: It is never stored as an address and cannot be turned back into one. Rotating the key forgets it entirely
Records from retired accounts, comments, and story submissions
Created when: You used one of those features while it was available
Why: They supported the feature you chose to use at the time
Getting rid of it: Email the privacy inbox and I will remove what belongs to you
The like button, in detail
Likes need no account, which means the site has to recognise a browser somehow or the count is meaningless. It does two things. It puts a random identifier in a cookie, which knows nothing about you beyond being the same browser as last time. And it runs your address through a keyed hash and keeps only the result, which is 32 characters that cannot be turned back into an address and cannot be compared against anybody else's records.
I want to be straight about the second one rather than hide behind the word hashed: your address is briefly in memory on my server at the moment you press the button, the same as it is for every request to every website. What is different is that it is never written down. Change the key and the site forgets which browsers liked what, permanently, which is the property that makes it a dedupe token rather than a record of where readers live.
Who else your browser talks to
Fonts are served from this site, not from Google. There is no analytics script, no advertising network, no session recorder, and no tag manager. The site sets no cookie at all until you like something.
The exception, and it is a real one: video thumbnails are served by Google from
i.ytimg.com, so on any page showing a video your browser makes a
request to Google to fetch that image, and Google sees it. The player itself
does not load until you press play. At that point your browser connects to
youtube-nocookie.com, and YouTube's rules apply to the player.
The pages are hosted by Netlify and the database is Supabase. Both process requests on my behalf, and neither gets that data to use for themselves.
Records from retired features
If you had an account, wrote a comment, or submitted a story before those features were retired, an old record may still exist. Email the privacy inbox and I will remove what belongs to you.
Newsletter
The .NET Drip is opt in. Its signup box is the only place here that asks you to type an email address. If you use it, that address goes to the Drip newsletter, which I send from another service. Every issue carries its own unsubscribe link.
Where you live
If you are in the UK, the EU, or somewhere with similar law, you have rights to see what I hold, correct it, take it elsewhere and have it deleted. Email the privacy inbox and I will do it by hand.
Children
This is a site about professional software. It is not aimed at children. The newsletter is not intended for anyone under 16.
When this changes
The date is in the sidebar and it only moves when something actually changed. If a change means I hold something new, that is not a quiet edit and I will say so before it starts.