Latest articles
Anatomy of this site: from a commit to your browser to my inbox
A hop-by-hop tour of how this site actually runs — the three paths that matter. How a page reaches your browser, what happens when you submit the contact form, and how a single git push ships itself to production.
Migrating This Site to TypeScript
A file-by-file account of converting a 159-file Next.js portfolio from JavaScript to strict TypeScript — the ordering that kept the build green, the ambient declarations that made SVGs and shaders type-check, and the one config change that can silently delete your routes.
3D on the Web with Three.js
A practical introduction to integrating Three.js into a React app — from scene setup and 3D models to performance, lighting, and the techniques behind this site's hero and device renders.
Building a Design System with Storybook
How to use Storybook as the foundation of a scalable component library — from initial setup to visual testing, design token integration, and keeping design and code in sync.
Modern CSS: Container Queries and What They Unlock
Container queries change the fundamental model of responsive design — from viewport-relative to component-relative. Here's what they are, how to use them, and what becomes possible when components can respond to their own context.
Lazy Loading in React — The Complete Picture
A practical guide to lazy loading in React apps — code splitting with dynamic imports, lazy image loading, virtualizing long lists, and how to avoid the pitfalls that slow things down.
Static-First Architecture: Next.js, S3, and CloudFront
A practical breakdown of how I built and deploy this site — static export with Next.js, hosted on S3, served globally through CloudFront — and why this stack is hard to beat for portfolio and marketing sites.
Accessibility Beyond the Checklist
How to build truly accessible UIs that go beyond audit scores — covering focus management, ARIA live regions, keyboard navigation, and the mindset shift that makes it stick.
A modern approach to styling in React
A couple nifty techniques for dynamically styling React components with CSS custom properties
Hello world: how I built this site
I originally built this portfolio site back in 2018, and since then it's evolved quite a bit. Recently I migrated from Create React App to Next.js and made some major upgrades in the process.
AI and Agentic Systems in Frontend and UX Design
Exploring how AI agents are transforming user interfaces, automating complex workflows, and reshaping the role of designers in building intelligent, adaptive user experiences.
