My posts on design.
I write about anything and everything that interests me.

Why I Didn't Use Google Programmable Search
Google's search API sounds perfect for static sites. It isn't. Here's why the pricing model and indexing delays make it impractical for most blogs.

Meilisearch is the Best Search You'll Never Need
Self-hosting Meilisearch with Docker, Traefik, and Astro - complete with API key management, content indexing, and rate limiting.

Why I Switched from Orama to Pagefind
Why I use Pagefind: A deep dive into chunked indexing, bandwidth scaling, and setting up a production-grade search for Astro.

The Right Way to Add Orama Search to Astro
Stop using the Orama Astro plugin. Here is how to build a type-safe, metadata-rich search engine that actually works in Dev Mode.

Honey, I Shrunk my Frontend Bundle Size!
How I replaced Lottie with Canvas sprites, migrated to Preact, and removed heavy dependencies to cut over 300KB from my bundle.

Automating Accessibility: Generating Alt Text with AI
How I automated accessibility across my portfolio by building a build-time pipeline that uses Gemini Flash to generate accurate alt text for hundreds of images.

Building a Smooth Pixelation Reveal Effect with Canvas
How I built a high-performance, interactive pixelation effect for image transitions using HTML5 Canvas and custom easing interactions.

How to generate blurry placeholders for your images
How I eliminated layout shift and improved perceived performance by generating 20px base64 placeholders automatically at build time.