<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Julio Benavente | Blog</title><description>Software engineer building web products with React, Next.js and TypeScript.</description><link>https://www.juliobenavente.com</link><language>en-us</language><item><title>You might not need useEffect: 5 patterns to delete</title><link>https://www.juliobenavente.com/blog/you-might-not-need-useeffect</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/you-might-not-need-useeffect</guid><description>Most effects in React code are derived state, event handlers or data fetching in disguise. Here is how to spot them and what to write instead.</description><pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate></item><item><title>React Server Components, explained without the hype</title><link>https://www.juliobenavente.com/blog/react-server-components-explained</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/react-server-components-explained</guid><description>What runs on the server, what runs in the browser, and how to draw the use client boundary so you ship less JavaScript.</description><pubDate>Mon, 26 Oct 2026 00:00:00 GMT</pubDate></item><item><title>React 19 forms: Actions, useActionState and useOptimistic</title><link>https://www.juliobenavente.com/blog/react-19-actions-useoptimistic</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/react-19-actions-useoptimistic</guid><description>React 19 turned form submission into a first-class feature. Here is how Actions, useActionState and useOptimistic replace the loading and error state you used to write by hand.</description><pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Suspense and streaming in React and Next.js, explained</title><link>https://www.juliobenavente.com/blog/react-suspense-and-streaming</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/react-suspense-and-streaming</guid><description>Suspense lets a slow part of the page wait without blocking the rest. Here is how loading.tsx, streaming, error boundaries and parallel fetching fit together, and the mistakes I see most.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate></item><item><title>React state management in 2026: how to choose without overthinking it</title><link>https://www.juliobenavente.com/blog/react-state-management-guide</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/react-state-management-guide</guid><description>useState, useReducer, Context, Zustand and TanStack Query solve different problems. Here is how I pick one, where Context re-renders bite, and when a store is actually justified.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Accessible React components: focus, keyboard, live regions and motion</title><link>https://www.juliobenavente.com/blog/accessible-react-components</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/accessible-react-components</guid><description>Most accessibility bugs in React come from five places: lost focus, mouse-only controls, silent updates, broken modals and ignored motion settings. Here are the patterns I use and the tests that catch them.</description><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate></item><item><title>How React rendering works, and what makes a component re-render</title><link>https://www.juliobenavente.com/blog/how-react-rendering-works</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/how-react-rendering-works</guid><description>A clear mental model of render and commit, what triggers a re-render, how reconciliation and keys work, and why index keys break.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate></item><item><title>React: how to make your app more performant</title><link>https://www.juliobenavente.com/blog/make-your-react-app-faster</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/make-your-react-app-faster</guid><description>How I find a slow React app&apos;s real bottleneck, then fix it in order of impact: bundle size, long lists, images, re-renders and Core Web Vitals.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>useMemo, useCallback and React.memo: when do they actually help?</title><link>https://www.juliobenavente.com/blog/usememo-usecallback-react-memo</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/usememo-usecallback-react-memo</guid><description>Memoization only pays off when there is a measured cost. Here is what each tool does, when it is wasted, and what to try first.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title>What INP measures, and how to improve it in React</title><link>https://www.juliobenavente.com/blog/improve-inp-in-react</link><guid isPermaLink="true">https://www.juliobenavente.com/blog/improve-inp-in-react</guid><description>INP scores how fast a page responds to clicks, taps and keys. Here is what it measures and the React and browser fixes that move it.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>