Blog

Thoughts on web development, design, and tools.

PinnedNew

The AI email parser worked. It was also expensive and kind of stupid.

9 min readยท

Building a portfolio tracker that reads Gmail for broker confirmations โ€” and the AI harnessing pattern that made it cheap to run at scale.

Read post โ†’
โ€œYou're not replacing AI with rules. You're using AI to write better rules than you'd ever write by hand.โ€
Pinned

The end of a chapter, and what I'm building next

2 min readยท

I was laid off recently. It wasn't dramatic โ€” just a restructure, a meeting, and then suddenly two years of work became the past tense.

Read post โ†’
โ€œThe work mattered. The ending being out of my hands doesn't change that.โ€

React Has Always Been Bigger Than the Browser

Finding React inside a terminal CLI cracked open a question I'd stopped asking: what does React actually do? The answer is narrower and more elegant than years of browser work had led me to believe.

reactarchitecturefrontend

The Ghost in the Browser

A story about a bug that doesn't exist, a user who's always right, and what happens when your framework has been quietly doing things for you for years.

reactfrontenddeployment

useEffect is the drop shot of React

Like the drop shot in badminton, useEffect is a brilliant tool โ€” but it should be rare, earned, and never your default.

reactarchitecturefrontend

Creating a simple full-stack application with monorepo using pnpm, React, Express, and Docker

A walkthrough of building a full-stack monorepo with pnpm workspaces, React, Express, and Docker โ€” from setup to running everything with a single command.

monorepodockerreactnode.js

How to build a simple Autocomplete with React

A step-by-step guide to building an autocomplete component with React โ€” covering the server, client, caching, debouncing, and keyboard navigation.

reacttutorialUI