<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>modern-react-spa</title><description>The advanced edition. Production patterns for React 19.2 SPAs.</description><link>https://modernreactspa.com/</link><language>en-us</language><item><title>React Evolution at a Glance (v15 → v18)</title><link>https://modernreactspa.com/learn/react-evolution-at-a-glance/</link><guid isPermaLink="true">https://modernreactspa.com/learn/react-evolution-at-a-glance/</guid><description>React&apos;s history at a glance — v15, v16 (Fiber), v17, v18 — what carried forward into 19.2, and what got deprecated.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react history</category><category>react fiber</category><category>react 16</category><category>react 17</category><category>react 18</category><category>react 19</category></item><item><title>What&apos;s New in React 19.2</title><link>https://modernreactspa.com/learn/whats-new-in-react-19-2/</link><guid isPermaLink="true">https://modernreactspa.com/learn/whats-new-in-react-19-2/</guid><description>Every API and behavior change between React 19.0 and 19.2 — Compiler, Actions, use(), metadata, asset loading.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react 19.2</category><category>react compiler</category><category>useActionState</category><category>useOptimistic</category><category>use hook</category><category>server components</category></item><item><title>Modern Hooks Deep Dive</title><link>https://modernreactspa.com/learn/modern-hooks-deep-dive/</link><guid isPermaLink="true">https://modernreactspa.com/learn/modern-hooks-deep-dive/</guid><description>A deep look at the five always-needed React hooks, useTransition / useDeferredValue, useSyncExternalStore, custom hook patterns, and the anti-patterns the React Compiler will not save you from.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react hooks</category><category>useTransition</category><category>useDeferredValue</category><category>useSyncExternalStore</category><category>custom hooks</category><category>react compiler</category><category>react 19</category></item><item><title>Component Architecture for SPAs</title><link>https://modernreactspa.com/learn/component-architecture-for-spas/</link><guid isPermaLink="true">https://modernreactspa.com/learn/component-architecture-for-spas/</guid><description>Component architecture for modern React SPAs — what replaced Container / Presentational, compound-component slots, error boundaries, and where to place Suspense in a real dashboard tree.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react component architecture</category><category>compound components</category><category>slots pattern</category><category>react-error-boundary</category><category>suspense boundary placement</category><category>react 19</category></item><item><title>🔁 Chapter 5 · Routing in 2026 — Two Flavours</title><link>https://modernreactspa.com/learn/routing-react-router-vs-tanstack-router/</link><guid isPermaLink="true">https://modernreactspa.com/learn/routing-react-router-vs-tanstack-router/</guid><description>Picking between React Router v7 and TanStack Router in 2026 — file-based vs config-based, code-splitting at the route boundary, and auth-guarded routes.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react router v7</category><category>tanstack router</category><category>react routing</category><category>code splitting</category><category>auth guard</category><category>react 19</category></item><item><title>📝 Chapter 6 · Forms Done Right</title><link>https://modernreactspa.com/learn/forms-done-right/</link><guid isPermaLink="true">https://modernreactspa.com/learn/forms-done-right/</guid><description>Forms in modern React — React Hook Form vs TanStack Form vs native &lt;form action&gt;, Zod/Valibot schema validation, optimistic updates, multi-step wizards, and accessibility.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react hook form</category><category>tanstack form</category><category>zod validation</category><category>valibot</category><category>useOptimistic</category><category>multi-step form</category><category>react forms</category></item><item><title>shadcn/ui Integration</title><link>https://modernreactspa.com/learn/shadcn-ui-integration/</link><guid isPermaLink="true">https://modernreactspa.com/learn/shadcn-ui-integration/</guid><description>shadcn/ui on React 19.2 + Vite — the copy-don&apos;t-install philosophy, CLI setup, Radix primitives, theming with CSS variables, and TanStack Table integration.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>shadcn ui</category><category>shadcn react</category><category>radix ui</category><category>tanstack table</category><category>react component library</category><category>react 19 ui</category></item><item><title>Icons, Tailwind &amp; CSS Customization</title><link>https://modernreactspa.com/learn/icons-tailwind-css-customization/</link><guid isPermaLink="true">https://modernreactspa.com/learn/icons-tailwind-css-customization/</guid><description>Icons, Tailwind CSS v4, and design tokens for React 19.2 SPAs — icon library landscape, SVG delivery, CSS variables, tailwind-merge, dark mode, container queries.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>tailwind css v4</category><category>react icons</category><category>lucide</category><category>css variables</category><category>design tokens</category><category>dark mode</category><category>container queries</category><category>tailwind merge</category></item><item><title>Layouts — From CSS Flexbox/Grid to Dockable Workspaces</title><link>https://modernreactspa.com/learn/layouts-flexbox-grid-dockable-workspaces/</link><guid isPermaLink="true">https://modernreactspa.com/learn/layouts-flexbox-grid-dockable-workspaces/</guid><description>Modern CSS layouts for React — Flexbox, Grid, container queries, and JS-driven dockable workspaces (flexlayout-react, react-grid-layout).</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>css flexbox</category><category>css grid</category><category>container queries</category><category>flexlayout-react</category><category>react-grid-layout</category><category>dashboard layouts</category><category>dockable ui</category></item><item><title>Desktop &amp; Shell UIs with Blueprint.js</title><link>https://modernreactspa.com/learn/desktop-shell-uis-blueprintjs/</link><guid isPermaLink="true">https://modernreactspa.com/learn/desktop-shell-uis-blueprintjs/</guid><description>Blueprint.js for desktop-style React SPAs — when it fits, setup on Vite + React 19.2, core components, theming, and the hybrid Blueprint + shadcn pattern.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>blueprintjs</category><category>blueprint react</category><category>desktop ui react</category><category>dense data tables</category><category>shadcn vs blueprint</category></item><item><title>Building a Component Library (with Storybook)</title><link>https://modernreactspa.com/learn/building-a-component-library/</link><guid isPermaLink="true">https://modernreactspa.com/learn/building-a-component-library/</guid><description>Building a React 19.2 component library — when it&apos;s worth it, package.json anatomy, Vite library mode, Storybook 9, Changesets publishing.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react component library</category><category>vite library mode</category><category>storybook 9</category><category>changesets</category><category>react 19 library</category></item><item><title>The Four Kinds of State</title><link>https://modernreactspa.com/learn/four-kinds-of-state/</link><guid isPermaLink="true">https://modernreactspa.com/learn/four-kinds-of-state/</guid><description>Every value in a React SPA belongs to one of four kinds of state — local, global, server cache, or URL. A decision flowchart that ends the &apos;which library should I use&apos; debate.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react state management</category><category>local state</category><category>global state</category><category>server state</category><category>url state</category><category>tanstack query</category><category>zustand</category></item><item><title>Global State — Zustand, Jotai, Recoil, Redux Toolkit</title><link>https://modernreactspa.com/learn/global-state-zustand-jotai-recoil-redux/</link><guid isPermaLink="true">https://modernreactspa.com/learn/global-state-zustand-jotai-recoil-redux/</guid><description>Picking a global-state library for React 19 SPAs — Zustand, Jotai, Recoil, Redux Toolkit. Selectors, render storms, the 7-question checklist, and why useContext is rarely the answer.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>zustand</category><category>jotai</category><category>recoil</category><category>redux toolkit</category><category>rtk query</category><category>react global state</category><category>useContext</category></item><item><title>Server State — TanStack Query (React Query)</title><link>https://modernreactspa.com/learn/server-state-tanstack-query/</link><guid isPermaLink="true">https://modernreactspa.com/learn/server-state-tanstack-query/</guid><description>TanStack Query (React Query) for server state in React 19.2 — cache-key-as-contract, optimistic mutations, prefetching, devtools, and pairing with Zustand.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>tanstack query</category><category>react query</category><category>server state</category><category>query key</category><category>optimistic updates</category><category>react cache</category><category>infinite query</category></item><item><title>URL as State</title><link>https://modernreactspa.com/learn/url-as-state/</link><guid isPermaLink="true">https://modernreactspa.com/learn/url-as-state/</guid><description>URL as state in React — typed search params with nuqs or TanStack Router, shareable filter UIs that survive reload, and multi-tab persistence.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>nuqs</category><category>url state react</category><category>tanstack router search params</category><category>react filter ui</category><category>shareable url</category><category>react state</category></item><item><title>The Bundler Landscape in 2026</title><link>https://modernreactspa.com/learn/bundler-landscape-2026/</link><guid isPermaLink="true">https://modernreactspa.com/learn/bundler-landscape-2026/</guid><description>The 2026 React bundler landscape — Vite, Bun, Parcel, Rspack, Turbopack, esbuild — what each is for, and when (not) to switch.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>vite</category><category>bun</category><category>parcel</category><category>rspack</category><category>turbopack</category><category>esbuild</category><category>react bundler</category><category>javascript bundler</category></item><item><title>Vite Deep Dive</title><link>https://modernreactspa.com/learn/vite-deep-dive/</link><guid isPermaLink="true">https://modernreactspa.com/learn/vite-deep-dive/</guid><description>Vite for React 19.2 — dev-server internals, Rollup production builds, plugins, env vars, path aliases, SVG modes, SSR/SSG mode, and debugging Vite itself.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>vite</category><category>vite react</category><category>vite ssr</category><category>rollup</category><category>vite plugins</category><category>vite svg</category><category>code splitting</category><category>vite path aliases</category></item><item><title>Bun &amp; Deno — New JavaScript Runtimes for React SPAs</title><link>https://modernreactspa.com/learn/bun-and-deno-runtimes/</link><guid isPermaLink="true">https://modernreactspa.com/learn/bun-and-deno-runtimes/</guid><description>Bun and Deno for React SPAs in 2026 — runtime differences from Node.js, side-by-side benchmarks, and a migration playbook.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>bun runtime</category><category>deno runtime</category><category>bun react</category><category>deno react</category><category>node alternative</category><category>javascript runtime</category></item><item><title>Monorepo Configuration — Workspaces, Turborepo, Nx, with a Bun focus</title><link>https://modernreactspa.com/learn/monorepo-configuration/</link><guid isPermaLink="true">https://modernreactspa.com/learn/monorepo-configuration/</guid><description>Monorepo configuration for React projects — npm/pnpm/Bun/Yarn workspaces, Turborepo vs Nx, CI affected-only builds, and Changesets versioning.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>monorepo</category><category>turborepo</category><category>nx</category><category>bun workspaces</category><category>pnpm workspaces</category><category>changesets</category><category>monorepo ci</category></item><item><title>Parcel, Rspack, Turbopack — when they fit</title><link>https://modernreactspa.com/learn/parcel-rspack-turbopack/</link><guid isPermaLink="true">https://modernreactspa.com/learn/parcel-rspack-turbopack/</guid><description>Parcel, Rspack, Turbopack — the narrow situations where each is a better fit than Vite, and an honest take on when not to switch.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>parcel</category><category>rspack</category><category>turbopack</category><category>webpack 5</category><category>vite alternative</category><category>react bundler</category></item><item><title>Migrating from CRA / Webpack to Vite</title><link>https://modernreactspa.com/learn/cra-to-vite-migration/</link><guid isPermaLink="true">https://modernreactspa.com/learn/cra-to-vite-migration/</guid><description>Migrating a CRA or Webpack 4 SPA to Vite — pre-flight audit, step-by-step migration script, Jest-to-Vitest, and a 1,400-file real-world case study.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>cra to vite migration</category><category>webpack to vite</category><category>jest to vitest</category><category>vite migration</category><category>react migration</category></item><item><title>The SSG Spectrum</title><link>https://modernreactspa.com/learn/ssg-spectrum/</link><guid isPermaLink="true">https://modernreactspa.com/learn/ssg-spectrum/</guid><description>Pure SPA, SSG, SSR, ISR — the rendering spectrum for React in 2026, and how to pick per-page based on SEO, TTI, build time, and data dynamism.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react ssg</category><category>react ssr</category><category>react isr</category><category>spa vs ssg</category><category>rendering strategies</category><category>react rendering</category></item><item><title>SSG Tools for React</title><link>https://modernreactspa.com/learn/ssg-tools-for-react/</link><guid isPermaLink="true">https://modernreactspa.com/learn/ssg-tools-for-react/</guid><description>Picking an SSG for React in 2026 — Astro, Next.js static export, Vite SSG, Gatsby today, smaller players, with a clear picker.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>astro</category><category>next js static export</category><category>vite ssg</category><category>gatsby</category><category>react ssg</category><category>astro islands</category><category>partial hydration</category></item><item><title>Hybrid — SPA Shell + Pre-rendered Pages</title><link>https://modernreactspa.com/learn/hybrid-spa-shell-prerendered-pages/</link><guid isPermaLink="true">https://modernreactspa.com/learn/hybrid-spa-shell-prerendered-pages/</guid><description>The most common real-world React deployment shape — pre-rendered marketing at /, SPA at /app/*. Shared design system, deployment, and routing handoff.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>hybrid spa ssg</category><category>react marketing site</category><category>react app shell</category><category>vercel rewrites</category><category>cloudflare pages</category><category>mixed rendering</category></item><item><title>Architecting a Multi-Team SPA</title><link>https://modernreactspa.com/learn/architecting-multi-team-spa/</link><guid isPermaLink="true">https://modernreactspa.com/learn/architecting-multi-team-spa/</guid><description>Architecting a multi-team React SPA — monorepo vs polyrepo at the organisational level, shared design systems as packages, and versioning strategies for shared code.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>multi team react</category><category>monorepo vs polyrepo</category><category>design system</category><category>react versioning</category><category>enterprise react</category><category>shared components</category></item><item><title>Module Federation in Depth</title><link>https://modernreactspa.com/learn/module-federation-in-depth/</link><guid isPermaLink="true">https://modernreactspa.com/learn/module-federation-in-depth/</guid><description>Module Federation for React 19.2 — host/remote/shared scope, Vite + Rspack setups, runtime vs build-time, sharing React/router/store, and the six failure modes you will hit.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>module federation</category><category>micro frontends</category><category>module federation vite</category><category>module federation rspack</category><category>react micro frontend</category></item><item><title>Running Different React Versions Together</title><link>https://modernreactspa.com/learn/running-mixed-react-versions/</link><guid isPermaLink="true">https://modernreactspa.com/learn/running-mixed-react-versions/</guid><description>Mixed React-version SPAs — why they exist, four isolation strategies, sharing state across React trees, and what breaks across major versions.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>mixed react versions</category><category>react 17 react 19</category><category>react isolation</category><category>micro frontend react</category><category>multiple react instances</category></item><item><title>Enterprise Concerns</title><link>https://modernreactspa.com/learn/enterprise-concerns/</link><guid isPermaLink="true">https://modernreactspa.com/learn/enterprise-concerns/</guid><description>Enterprise React SPA concerns — OIDC / BFF auth patterns, multi-tenancy with per-tenant theming and feature flags, i18n at scale, and accessibility compliance pipelines.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react enterprise</category><category>oidc</category><category>bff pattern</category><category>react multi tenancy</category><category>react i18n</category><category>react a11y compliance</category></item><item><title>State Management Complexity at Scale</title><link>https://modernreactspa.com/learn/state-management-at-scale/</link><guid isPermaLink="true">https://modernreactspa.com/learn/state-management-at-scale/</guid><description>State at scale — per-remote stores vs shared store in federated SPAs, cache coherence across micro-frontends, and the shadow Redux anti-pattern.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react state scale</category><category>micro frontend state</category><category>federated state</category><category>shadow redux</category><category>cache coherence</category></item><item><title>The Performance Budget</title><link>https://modernreactspa.com/learn/performance-budget/</link><guid isPermaLink="true">https://modernreactspa.com/learn/performance-budget/</guid><description>Defining and enforcing a performance budget for React SPAs — Core Web Vitals (INP, LCP, CLS), CI gates that block regressions, and RUM vs lab telemetry.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react performance budget</category><category>core web vitals</category><category>INP</category><category>LCP</category><category>CLS</category><category>lighthouse ci</category><category>react RUM</category></item><item><title>Bundle Optimization</title><link>https://modernreactspa.com/learn/bundle-optimization/</link><guid isPermaLink="true">https://modernreactspa.com/learn/bundle-optimization/</guid><description>Bundle optimization for React 19.2 — reading the bundle visualizer, route-level code-splitting, dependency cost analysis, and replacing heavy libraries.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react bundle size</category><category>code splitting</category><category>tree shaking</category><category>bundle analyzer</category><category>react performance</category><category>rollup visualizer</category></item><item><title>Runtime Performance</title><link>https://modernreactspa.com/learn/runtime-performance/</link><guid isPermaLink="true">https://modernreactspa.com/learn/runtime-performance/</guid><description>Runtime performance for React 19.2 SPAs — DevTools Profiler, what the compiler optimises, list virtualization, avoiding render storms, and web workers for CPU-bound work.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react devtools profiler</category><category>react compiler</category><category>list virtualization</category><category>tanstack virtual</category><category>react performance</category><category>web workers</category></item><item><title>Network Performance</title><link>https://modernreactspa.com/learn/network-performance/</link><guid isPermaLink="true">https://modernreactspa.com/learn/network-performance/</guid><description>Network performance for React SPAs — HTTP/3 awareness, React 19.2 resource hints (preload, preinit), image strategy, and service workers for offline-first.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>http3 react</category><category>react resource hints</category><category>react image optimization</category><category>react service worker</category><category>react offline first</category></item><item><title>Debugging Strategies</title><link>https://modernreactspa.com/learn/debugging-strategies/</link><guid isPermaLink="true">https://modernreactspa.com/learn/debugging-strategies/</guid><description>Debugging React 19.2 SPAs — React DevTools (Components + Profiler), TanStack Query Devtools, state-store devtools, production source maps, and Sentry / Datadog RUM.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react devtools</category><category>react profiler</category><category>tanstack query devtools</category><category>sentry react</category><category>datadog rum</category><category>react source maps</category></item><item><title>Hard Bugs and How to Find Them</title><link>https://modernreactspa.com/learn/hard-bugs-react-spa/</link><guid isPermaLink="true">https://modernreactspa.com/learn/hard-bugs-react-spa/</guid><description>The five hardest React SPA bug classes — stale closures, hydration mismatches, memory leaks, render-loop traps, and race conditions — with debugging recipes.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>react stale closure</category><category>react hydration mismatch</category><category>react memory leak</category><category>react render loop</category><category>react race condition</category><category>react bugs</category></item><item><title>Testing Modern React SPAs — the Full Pyramid</title><link>https://modernreactspa.com/learn/testing-modern-react-spas/</link><guid isPermaLink="true">https://modernreactspa.com/learn/testing-modern-react-spas/</guid><description>Testing modern React 19.2 SPAs across the pyramid — Vitest, Jest migration, React Testing Library, Playwright, visual regression with Chromatic, and Storybook play functions.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>vitest</category><category>react testing library</category><category>playwright react</category><category>jest to vitest</category><category>chromatic</category><category>storybook play</category><category>react testing</category></item><item><title>Delivery Pipelines</title><link>https://modernreactspa.com/learn/delivery-pipelines/</link><guid isPermaLink="true">https://modernreactspa.com/learn/delivery-pipelines/</guid><description>Delivery pipelines for React SPAs — GitHub Actions matrix for Node + Bun + Deno, preview deploys on Vercel / Netlify / Cloudflare Pages, OpenFeature flags, and SPA canary releases.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>github actions react</category><category>vercel preview deploy</category><category>openfeature</category><category>feature flags react</category><category>canary release spa</category><category>react ci</category></item></channel></rss>