<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Michi — Blog</title>
  <link>https://michi-docs.vercel.app</link>
  <description>A client-side router built from first principles. No routing libraries, no framework abstractions, just the raw History API and React primitives.</description>
  <atom:link href="https://michi-docs.vercel.app/blog/rss.xml" rel="self" type="application/rss+xml" />
  <item>
    <title>Per-Route Error Boundaries and Prefetch on Hover</title>
    <link>https://michi-docs.vercel.app/blog/per-route-error-boundaries-and-prefetch-on-hover</link>
    <guid isPermaLink="true">https://michi-docs.vercel.app/blog/per-route-error-boundaries-and-prefetch-on-hover</guid>
    <description>Two problems that show up once a router has real users hitting it: what happens when one route breaks, and what happens while a user is deciding whether to click. This post covers building per-route error boundaries with two separate error channels, and prefetch on hover that reuses the exact same loader pipeline instead of building a second one.</description>
    <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>Layouts That Persist and Data That Arrives Before You Do</title>
    <link>https://michi-docs.vercel.app/blog/layout-that-persists-and-data-that-arrives-before-you-do</link>
    <guid isPermaLink="true">https://michi-docs.vercel.app/blog/layout-that-persists-and-data-that-arrives-before-you-do</guid>
    <description>Continuing to build a client-side router from scratch. This post covers what happens after the basics: how nested routes keep your navbar mounted across navigations, why the Outlet pattern is just a context counter, and how data loaders flip fetch-on-render into render-as-you-fetch with parallel execution and race condition guards.</description>
    <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>What Actually Happens When You Click a Link in React</title>
    <link>https://michi-docs.vercel.app/blog/what-happens-when-you-click-a-link-in-react</link>
    <guid isPermaLink="true">https://michi-docs.vercel.app/blog/what-happens-when-you-click-a-link-in-react</guid>
    <description>I&apos;m building a client-side router from scratch to understand what React Router and TanStack Router do under the hood. This post walks through what I&apos;ve found so far: the History API that makes navigation work without reloads, why useState breaks in concurrent mode, how route patterns become regex, and the `useSyncExternalStore` hook that ties it all together.</description>
    <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
  </item>
</channel>
</rss>
