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.jsTypeScriptReact.jsReact 19Server ActionsTailwind CSSShadCNZodFront-End DevelopmentAccessibility
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.

Next.jsTypeScriptReact.jsReact 19React Server ComponentsServer ActionstRPCPerformance OptimizationFront-End Development

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