$ cat ./privacy

Privacy

This site runs on hardware in my basement. There's no ad network, no third-party tracker, and nothing here gets sold or handed to anyone. That's the short version. The rest of this page is the specific version, because "we respect your privacy" is what everyone says right before the fine print.

v1.8 · updated 2026-09-30

# what this covers

Both of my sites: probablyfine.dev and maxfieldallison.com. Two sites, one person, one set of hardware, so one policy rather than two that drift apart. Where they differ, it says so below.

It doesn't cover sites I link to, which have their own terms and none of my influence.

# analytics

I use Umami, self-hosted on my own cluster. It's served from this domain at/pf-insights/, not from someone else's analytics domain. It sets no cookies and builds no profile that follows you anywhere else.

For each page view it records the URL, the referrer that sent you, your browser, OS and device type, your screen size, your language, and an approximate location worked out from your IP address. That location goes down to city level. The IP address itself is never written to the database, and there's no column in it that could hold one.

It also records page timing numbers, the kind that tell me whether the site is slow: how long the largest thing on screen took to paint, how quickly it responded to your first tap, how much the layout jumped around. Those are measurements of my site, not of you.

A handful of named events fire on top of plain page views. On a blog post: one when you reach the end, one when the "how this one was made" note scrolls into view, and one when you click a source link inside the article.

Elsewhere it counts the things you click that a page view would otherwise miss. The outbound links in the nav, footer and support page, the RSS link, the email link. Which listing you came into a post from, and whether you left it by a tag, by the older and newer arrows, or by the related list. The buttons that do something without loading a new page: starting and stopping a game on the arcade page, opening a photo on the pets page and moving through them, the print and download buttons on the resume, the navigation menu, the skip-to-content link. Each one is a number that goes up by one. Nothing records where on the page you clicked.

Links within blog prose are counted too, including which links are images. Selecting an article version, opening a passage comparison, or downloading a document is counted with the article slug and a fixed version, passage, or document identifier. The text and your reading position are not sent. On social posts, clicks to open or download an image, follow a permalink, or continue to the blog are counted. These do not establish completed reads or follows on another network. On Chronochasm, I count opened moments and selected sources, previous and next passage navigation, related threads, and links out of the reader. I also count use of the thread filter, zoom, gap controls, moment list and motion setting. Those events carry the public moment, thread or source identifier and the control setting. They don't include the passage text, private editorial notes, or anything you type. Moving the pointer over the timeline and scrolling through it don't send events.

There is no session recording, no heatmap, no mouse or scroll tracking, and nothing watching what you type. Umami can do session replay. It is switched off, and the script this site serves is the plain tracker with none of that code in it. What I get is a count of how many people did a thing, never a picture of one person doing it.

Both sites run this the same way, as separate collections that aren't joined up. The events differ where the sites do: the blog, photo and arcade ones exist only on probablyfine.dev, and the resume ones only on maxfieldallison.com.

If you block any of it, nothing breaks. The site doesn't check and doesn't care.

# comments

Comments are on probablyfine.dev only. maxfieldallison.com doesn't have them, and if that changes this section already describes what would happen.

Comments run on Comentario, self-hosted here alongside everything else. It used to be Giscus, which stored threads as GitHub Discussions and meant you needed a GitHub account to leave a sentence. That ruled out most people who read this.

You can comment anonymously, or make an account with an email address and a password. Signing in with GitHub or Google is planned and isn't live yet. When it is, this page changes first.

Here's what the comment server keeps. Against a comment: the text, the name you typed, and a shortened IP address with a country. Against an account: your email address, your display name, and a shortened IP address and country from when you signed up. Against a login session: a shortened IP address again, plus your browser and operating system. Sessions expire after 28 days, or when you sign out, and are deleted then. It also keeps its own count of views on pages that have comments, with a shortened IP address and your browser and operating system, and deletes each view after 31 days.

Shortened means the server keeps the first two of the four parts of an IPv4 address, like 203.0.x.x, or the first two groups of an IPv6 one. It works out the country first and then drops the rest before anything is saved.

The IP logging is for spam and abuse, and that's all I use it for. I don't cross-reference it against the analytics, which couldn't be done anyway, because the analytics never stored an IP to match it to.

Avatars come from Gravatar. If you make an account, my server sends a hashed copy of your email address to Gravatar once, and whatever picture you've got there becomes your avatar. The image is then stored here and served from this domain, so your browser never talks to them. That hash is the one piece of anything that leaves my hardware, and if you've never set up a Gravatar there's nothing on the other end to find.

Comments are moderated. Anonymous ones wait for me to approve them, and so do the first few from a new account. That reproduces what requiring a GitHub account was doing by accident, without charging everyone a GitHub account to get in. It also means your comment might sit in a queue for a while. I'm one person.

# in your browser

The analytics store nothing in your browser. Some page features do, as described below.

On a post with comments, the comment box sets a cookie calledcomentario_commenter_session and keeps your comment sort order in local storage. Until you sign in, the cookie holds the same placeholder value for everyone. Once you sign in, it holds your login session.

On either site, “Keep my place” saves that page's title, address and section in your browser. “Your saved places” lets you return to it or clear the bookmarks. Saving is optional; browsing alone does not create a saved reading history. Each site keeps its own bookmarks, without sending them to a server or syncing them between devices.

Chronochasm keeps a temporary path through the moments and sources you open. If you choose “Remember my path on this browser,” it saves their public identifiers and your last moment. “Clear my path” removes that saved path. This is separate from the existing Chronochasm event counters described above. Still mode does not save a preference.

The arcade can keep saved games and disk changes in your browser's storage for arcade.probablyfine.dev. They stay on your device. The arcade server only hands out files and has nothing that could receive them. Clearing that site's data removes them.

# server logs

The web servers in my cluster log each request: the address it came from, the page, the referrer and the browser. For visits from the internet that address is Cloudflare's rather than yours, because Cloudflare sits in front of the site. The logs are kept for 14 days and are used to find faults.

# cloudflare

DNS and TLS for this domain go through Cloudflare, and there's a standby copy of the site on Cloudflare Pages that serves you if my cluster is down. So Cloudflare sees requests to this domain the way it does for any site behind it. That layer runs under their privacy terms, not mine, and I don't control what they log.

# fonts and assets

Everything the page loads comes from this domain. No Google Fonts, no CDN, no third-party scripts. The fonts are copied into the build. The one exception is described under comments, and it happens on my server rather than in your browser.

# getting it deleted

Email me at hello@maxfieldallison.com and I'll delete it. A comment, your account, everything attached to it, your choice. You don't have to give a reason and I won't ask for one.

If you made an account, you can also delete it yourself. In the comment box, open Settings, then "Edit Comentario profile", then "Delete my account". You choose whether your comments go with it. If you keep them, they stay up under the name "Deleted User".

If you commented without an account, there's no email address to match you by. Tell me which post and roughly when, and I'll remove it.

Same address if you think something on this page is wrong, or if you want to know what's stored against you before deciding.

# log

v1.8 · 2026-09-30 · Added optional reading bookmarks on both sites and a remembered path in Chronochasm. These stay in your browser and have their own clear controls. The existing analytics remain separate.

v1.7 · 2026-09-25 · Added counters for opening or downloading a social post image, following its permalink, and moving from a social post to the blog. These count clicks, not completed reads or people who followed on another network.

v1.6 · 2026-09-24 · Added counters for selecting an article version, opening a passage comparison, and downloading an article document. They carry only the article slug and fixed version, passage, or document identifiers.

v1.5 · 2026-09-23 · Corrected the comments section: the comment server shortens IP addresses before saving them, and it also records browser and operating system against login sessions and page views. Added how long sessions and page views last, the cookie and local storage the comment box uses, arcade saves, the web server logs, and how to delete a comment account yourself.

v1.4 · 2026-09-15 · Added a support page. Clicks from it to GitHub Sponsors are counted alongside the existing outbound links.

v1.3 · 2026-09-15 · Added counters for links within blog prose and linked images, and for opening Chronochasm passages and sources, following reading paths, and using timeline controls. The events carry public identifiers and control settings, not the text of passages or anything typed into a form.

v1.2 · 2026-09-10 · Added a GitLab profile link to both site footers. Clicks on it are counted alongside the existing outbound links.

v1.1 · 2026-08-27 · Added interaction events. The sites counted page views and a handful of link clicks; they now also count which listing you came into a post from, the tag, related and older/newer links, and the buttons that do something without loading a new page: the arcade emulators, the photo viewer, the resume print button, the mobile menu, the skip link. All of them counters. Session replay and heatmaps stay off.

v1.0 · 2026-08-21 · First version, written when comments moved off GitHub to a self-hosted Comentario instance. Before this the site collected analytics only and had no page saying so.

If what's collected changes, this page changes with it and the old entry stays visible. It's in git, so you can check whether I've kept that.

Your saved places

Keep a place in an article or case study, then come back to it. These bookmarks stay in this browser, on this site.

In this page