React work
Every app here runs on React. A 2019 MERN movie database at one end, this site on React 19 with the compiler on at the other. The newer work pushes client code down into leaf components, so the pages around them stay static.
- project
EyeHack
MacOS menubar app for 20-20-20 eye break rule
- project
StarWalls
The slickest NASA wallpaper app on the web
- project
VdoCard
Animated greeting cards in about 30 seconds
- project
Material You
High-performance static portfolio site
- project
SMDB
Simple Movie DataBase
- project
UniFonts
Universal font generator
- project
Gatsby Portfolio
Speedy Static Markdown Portfolio
- project
Pixearch
Clean Pixabay client with react & material-ui
- blog
Every Phosphor Icon You Import Ships Six Times
I was hunting for the last few kilobytes on my landing page and found 51KB of SVG paths. For 26 icons. That's about 2KB per icon, and most of them are a circle with two lines in it. The reason is the API. Phosphor icons take a weight prop: That's decided at runtime. So the component has to carry…
- blog
I Deleted the Carousel Library
Two carousels on this site, one carousel library. Embla, with the wheel-gestures plugin, about 64KB raw and 20KB gzipped. Both carousels scroll sideways and snap. The browser does that: Touch drag, momentum, trackpad, keyboard, snapping. All of it free, from the platform. What a library adds on top…
- blog
I Rebuilt This Site for Three Years
I rebuilt this site for three years. It was supposed to be a weekend job. The old version ran on Gatsby — fine, fast enough, but I'd been hitting walls. The routing and GraphQL pipeline were rigid in a way that fought me every time I wanted to add anything new. There was no built-in image…
- blog
StarWalls: A Minimal Space Photo Wallpaper PWA
I wanted a better way to browse NASA photos on my phone and save them as wallpapers. NASA has the APOD API, the Image of the Day RSS feed, and the full Images API — tons of great content — but no mobile interface that makes it easy to frame and download a shot for your lock screen. So I built one.…