I like making things.
And sometimes breaking them too 👀
Recent Photos
Four people, with different jacket colors, snowshoe across a bridge in the snow Purple and pink hues paint the sky in a sunset with the skyline of Anchorage visible in the distance Colorful buildings reflect sunset light in Procida, Italy A man gets out of a car, with Naples apartments in the background, balconies covered in laundry and utilities The Italian flag waves above a government building and bronze statue Go to Photos →
Recent Posts

Integrate Backblaze B2 with TinaCMS media library

Through a couple twists, I figured out how to setup the media manager for TinaCMS to work with Blackblaze B2 (and any S3-compatible provider). The media library is a critical part of its goal to allow users to control their content, and B2 provides scalable, cost-efficient storage.


Relative timestamps in Astro JS

Migrating to Astro required rethinking how to handle relative timestamps on the client side while dealing with a highly static website. It's doable, but I had to work around a minor Astro quirk.


Rebuild cached static website Docker layers in Easypanel

Self-hosted PaaS like Easypanel make serving continuously deployed websites a breeze. Unfortunately, they don't integrate so easily with external data used during a static website build process.