Building this site
How this site came together over four days, what each page does, and what is still on the list.
I wanted a personal site that was not a template — something minimal at the front door, with the academic material a click away rather than shouting at you. This is a short account of how it came together and what is left.
The landing page
The front page is one screen: a rotating point cloud, my name, and the day’s sleep, step and training numbers in the corners. Nothing else.
The shape is a placeholder — an Aizawa attractor, a chaotic system whose trajectory settles into a banded torus with a spike through it. I picked it over a sphere of dots because its density falls off unevenly, the way a real scan does, and because the points arrive in trajectory order, which lets a faint line thread through them for structure. It is meant to be replaced by an actual scan of something.
That render is the only JavaScript on the site. Every content page ships zero script tags.
The rest of it
Academics is the conventional one: photo, a paragraph, education, publications with the titles linked straight to arXiv or the DOI, and a row of profile links. No link chips, no boxes — the title is the link.
Portfolio is a card grid. Each card is a cover image and one line; the bullets live on the project’s own page. The covers are generated abstract figures for now, in the same palette as everything else, so the cards do not read as broken while I wait to have real screenshots.
The blog is Markdown files in a folder. Frontmatter is validated at build time, so a mistyped field fails the build instead of quietly rendering nothing.
What is left
The numbers on the front page are real in shape but not yet in fact — they come from a JSON file I edit by hand. The plan is a Shortcut on my phone that posts the previous day’s Health figures to an endpoint each morning:
Also on the list, in roughly the order I care about it:
- Replace the placeholder attractor with a real point cloud.
- Real cover images for the projects.
- Wire up the health sync above.
- Put it on a domain — the config still says
example.com.
None of it is urgent. The site works; the rest is finishing.