Building this site
- Next.js
- design
I wanted a portfolio that felt less like a résumé and more like a desk you could fidget with. So instead of a hero image and a wall of text, the home page is a series of small toys: a tilted 3D map of where I am, a typing test with a bongo cat, a drawing board for visitors.
Every one of those started as an excuse to learn something. The map taught me MapLibre's style system and how expensive it is to throw away a GL context. The typing toy was an exercise in measuring WPM without lying to the user. The drawing board was about getting canvas to feel immediate.
The rule I kept coming back to: if a thing animates in response to time or the pointer, it belongs in CSS or a ref-mutated style — not React state. State means re-renders, and re-renders are how a playful page turns into a janky one.
None of it is essential. All of it is the point.