Logo

Journal

Reflecting on some of the toughest challenges I've tackled in my career.

Errors Aren't Strings: Four Unfashionable React 19 Patterns

Errors Aren't Strings: Four Unfashionable React 19 Patterns

Most React codebases rhyme: inline error strings, forms that flash on submit, a Tailwind config quietly eating the design system. Four small patterns that compound — typed error codes, a Form wrapper, colocated copy, and no tailwind.config at all — and the UI layer finally behaves.

Next.jsTypeScriptServer ActionsTailwind CSSZod
I Haven't Written fetch() in a Year

I Haven't Written fetch() in a Year

Every React app has a fetch-shaped hole in it, and a 40 KB library to manage the cache you didn't need. RSVPed has zero client fetches: one server-side gateway, progressive RSC streaming, and transitions for everything else. Half the bundle, no waterfalls, no stale data.

React Server ComponentsServer ActionstRPC

Let's
Face
Talk

If you'd like to talk about a potential opportunity, or just want to say hi, feel free to reach out.

find me here