
Forms in React: Where TanStack Form Earns Its Place
Forms are where clean React apps quietly fall apart. Conditional fields, async validation, a submit button that has to know about everything — it adds up fast. Here's why I reach for TanStack Form, where it beats Formik and React Hook Form, and where a form library still can't save you.
Read full article →
React UI Libraries: Who Owns the Styling Decides Everything
Picking a component library feels like picking buttons and modals. It isn't. You're deciding who controls your styling — you or the library — and that single choice shapes how much you'll fight it for years. Here's how I weigh MUI, Ant Design, Radix, and shadcn/ui.
Read full article →
Styling React in 2026: How I Actually Choose
Styling is the most argued-about, least reasoned-about decision in a React app. The real question isn't which library looks nicest in a demo — it's which one survives a growing codebase. Here's how I weigh Tailwind, CSS Modules, CSS-in-JS, and zero-runtime options, and where each one earns its place.
Read full article →
Immutable Data in React: The Rule I Stopped Arguing About
A module I was told not to over-engineer grew into an entire application. Most of what let it survive was boring — and one of the most boring rules was never mutating state in place. Here's how immutability actually works in React, when I reach for Immer, and why I skip Immutable.js.
Read full article →
Give Your AI Agent a Memory — It Will Stop Disappointing You
A simple file-based memory system that turns AI agents from forgetful interns into reliable collaborators. Works for engineers, designers, writers, and anyone who uses AI tools daily.
Read full article →
React State Management with Reatom: When useState Stops Being Enough
Most React state doesn't need a library. Then one workflow grows into drafts, derived values, undo, optimistic steps, and cross-component coordination. This is where I reach for Reatom instead of turning TanStack Query into a client-state store.
Read full article →
Stop Quizzing Senior Engineers — Start Talking to Them (TL;DR)
The condensed version: why conversational interviews beat trivia quizzes for senior roles, with practical examples and actionable advice.
Read full article →
Stop Quizzing Senior Engineers — Start Talking to Them
Why conversational interviews produce better hiring signal than algorithmic puzzles and API trivia — and how one interview with a guy named John changed how I think about hiring.
Read full article →
Routing with TanStack Router: Treat the URL Like Application State
Routing is not just rendering a page for a path. In serious React apps, the URL carries product state: filters, tabs, pagination, selected records, redirects, and preload decisions. TanStack Router makes that state typed instead of hopeful.
Read full article →
React Data Fetching with TanStack Query: The Patterns That Keep Apps Calm
TanStack Query is not just a better useEffect. It is the server-state layer of your React app. The hard part is not fetching data — it is designing keys, freshness, invalidation, pagination, and prefetching so the UI stays predictable.
Read full article →