Under the hood

How this site is built, what it runs on, and what it stores about you.

What the site is made of, and why I picked each part. See a request travel through it →

Stack
PartChoiceWhy
PagesAstroEvery page is built ahead of time as a plain file, so nothing has to run when you visit.
HostingCloud Storage + Cloud CDNThe files sit on Google's network close to you. No server to patch.
Live featuresPython (FastAPI) on Cloud RunThe contact form and demos run in a container that shuts off when nobody's using it.
UpdatesCloud Build from GitHubWhen I merge a change, it's tested and published automatically.
FontsIBM Plex Sans and MonoServed from this site, so no other company sees your visit.
AnalyticsMy ownPersonal site traffic analytics only, no cookies.

When you open a page, the site writes down a few facts so I can count visits and spot slow pages. This is every one of them.

Everything the site records about a visit
WhatWhyStored as
Time of the visitSo I can see when people visit.ts
Kind of eventEither "someone opened a page" or "how fast that page loaded".type
Page-view numberA random number for each page you open, so a speed reading can be matched to its visit.view_id
Visitor codeA scrambled code that changes every day. It lets me count unique visitors for a day without knowing who anyone is.visitor_id
PageWhich page you opened.path
Where you came fromThe website that linked you here, like linkedin.com. Never the full link.referrer_domain
CountryYour country only. No city, no IP address.country
Device typePhone, tablet or computer.device
Screen sizeSmall, medium or large, so I know which layouts matter most.width_bucket
Page speedHow fast the page appeared, responded and settled, so I can fix slow ones.lcp_ms, inp_ms, cls

Individual visits are deleted after 90 days; only daily totals are kept. The analytics never store your IP address. Google Cloud's standard request logs do record it, and delete it after 30 days (GCP's native default log retention). The site sets no cookies.

BUILD 0001 · 4f4f078 · 2026-11-09 14:07 UTC