privacy

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.

The short version

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.

Cookie

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

Address

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

Legacy

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.