Colophon
It would be strange to spend two months building software that refuses to watch people, and then hand you a personal site that does. So this one does not.
What this page does not do
No analytics. Not first-party, not self-hosted, not “privacy-friendly”. None.
No cookies, no local storage, no fingerprinting, no session recording.
No third-party requests. No CDN, no hosted fonts, no embeds, no tag manager.
No forms, and nowhere to submit anything to.
You can check rather than take my word for it: open your browser’s network panel and reload. Every request should be to this domain, and there should not be many. The site also ships a content security policy that forbids loading anything from anywhere else, so if I ever break this promise, your browser will stop me.
What it is made of
- Framework
- Next.js 16, App Router, static output
- Styling
- Tailwind CSS v4
- Typeface
- Whatever your system already has. SF Pro on Apple devices, SF Mono for the small type
- Motion
- A Canvas 2D starfield, a WebGL sun, and CSS transitions. No animation library, no engine
- The sun
- A fragment shader, not a video. Limb darkening from the quadratic law, convection granules sampled as 3D noise on the sphere so they foreshorten toward the edge, spots that turn with the surface, and a corona. The palette is measured off a photograph
- The wind
- Drawn the way coronagraphs show it: a fan of fine streamers rooted in the corona, widening and dimming as they reach out, white hot at the root and cooling to red, with clumps of plasma streaming outward along each line. A gust brightens and quickens one sector of the fan. Streamers that meet the name end on it and heat the letters they strike, and letters in front shadow the ones behind
- Project marks
- Line drawings in SVG, generated in the page rather than exported. A screenshot of a privacy browser is only ever a screenshot of a browser
- Images
- None. Every mark on this site is drawn at runtime or is a CSS gradient
- Hosting
- Vercel
On the writing
Version numbers, dates and figures on this site are the real ones. Where something is built but not released, it says so. Where a project has limits, like an app that needs Apple Silicon, or a phone app that has to trust a server the Mac app does not, it says that too, on the same page as the claim rather than in a footnote. If you find something here that is wrong, I would rather know.