Episode 2 — React Frontend Architecture NextJS / 2.11 — Routing and Application Structure

2.11.a — React Router: client-side navigation

<< 2.11 Overview


Learning outcomes

  1. Explain client-side routing vs full page loads.
  2. Bootstrap a React SPA with BrowserRouter (or data router APIs per your stack).
  3. Avoid the most common hosting 404 pitfall on refresh.

Why routing exists in SPAs

React renders UI in the browser. The URL is still the universal way to:

  • share a location (/invoices/42)
  • use back/forward meaningfully
  • deep-link into authenticated areas (with guards)

React Router maps URL patterns to elements (components) and keeps them in sync with history.


Minimal v6 setup

import { BrowserRouter, Routes, Route, Link } from "react-router-dom";

export function App() {
  return (
    <BrowserRouter>
      <nav>
        <Link to="/">Home</Link> | <Link to="/about">About</Link>
      </nav>

      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

function Home() {
  return <h1>Home</h1>;
}
function About() {
  return <h1>About</h1>;
}

Use Link (or NavLink) instead of <a href> for in-app navigation to avoid full reloads.


Deployment note

With BrowserRouter, refreshing /about asks the static server for /about. Configure fallback to index.html (or use a host that understands SPAs).



Appendix — Scenario bank (basic → advanced)

Drill format: broken URL / UX → root cause → fix → interview phrase.

RR0-001 — React Router intro #1

  • Level: Beginner
  • Symptom: 404 on refresh at depth 13 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-002 — React Router intro #2

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 26 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-003 — React Router intro #3

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 39 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-004 — React Router intro #4

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 52 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-005 — React Router intro #5

  • Level: Advanced
  • Symptom: 404 on refresh at depth 65 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-006 — React Router intro #6

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 78 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-007 — React Router intro #7

  • Level: Beginner
  • Symptom: 404 on refresh at depth 91 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-008 — React Router intro #8

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 104 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-009 — React Router intro #9

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 117 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-010 — React Router intro #10

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 130 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-011 — React Router intro #11

  • Level: Advanced
  • Symptom: 404 on refresh at depth 143 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-012 — React Router intro #12

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 156 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-013 — React Router intro #13

  • Level: Beginner
  • Symptom: 404 on refresh at depth 169 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-014 — React Router intro #14

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 182 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-015 — React Router intro #15

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 195 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-016 — React Router intro #16

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 8 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-017 — React Router intro #17

  • Level: Advanced
  • Symptom: 404 on refresh at depth 21 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-018 — React Router intro #18

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 34 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-019 — React Router intro #19

  • Level: Beginner
  • Symptom: 404 on refresh at depth 47 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-020 — React Router intro #20

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 60 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-021 — React Router intro #21

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 73 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-022 — React Router intro #22

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 86 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-023 — React Router intro #23

  • Level: Advanced
  • Symptom: 404 on refresh at depth 99 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-024 — React Router intro #24

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 112 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-025 — React Router intro #25

  • Level: Beginner
  • Symptom: 404 on refresh at depth 125 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-026 — React Router intro #26

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 138 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-027 — React Router intro #27

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 151 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-028 — React Router intro #28

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 164 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-029 — React Router intro #29

  • Level: Advanced
  • Symptom: 404 on refresh at depth 177 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-030 — React Router intro #30

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 190 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-031 — React Router intro #31

  • Level: Beginner
  • Symptom: 404 on refresh at depth 3 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-032 — React Router intro #32

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 16 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-033 — React Router intro #33

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 29 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-034 — React Router intro #34

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 42 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-035 — React Router intro #35

  • Level: Advanced
  • Symptom: 404 on refresh at depth 55 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-036 — React Router intro #36

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 68 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-037 — React Router intro #37

  • Level: Beginner
  • Symptom: 404 on refresh at depth 81 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-038 — React Router intro #38

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 94 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-039 — React Router intro #39

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 107 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-040 — React Router intro #40

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 120 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-041 — React Router intro #41

  • Level: Advanced
  • Symptom: 404 on refresh at depth 133 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-042 — React Router intro #42

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 146 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-043 — React Router intro #43

  • Level: Beginner
  • Symptom: 404 on refresh at depth 159 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-044 — React Router intro #44

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 172 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-045 — React Router intro #45

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 185 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-046 — React Router intro #46

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 198 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-047 — React Router intro #47

  • Level: Advanced
  • Symptom: 404 on refresh at depth 11 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-048 — React Router intro #48

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 24 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-049 — React Router intro #49

  • Level: Beginner
  • Symptom: 404 on refresh at depth 37 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-050 — React Router intro #50

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 50 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-051 — React Router intro #51

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 63 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-052 — React Router intro #52

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 76 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-053 — React Router intro #53

  • Level: Advanced
  • Symptom: 404 on refresh at depth 89 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-054 — React Router intro #54

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 102 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-055 — React Router intro #55

  • Level: Beginner
  • Symptom: 404 on refresh at depth 115 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-056 — React Router intro #56

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 128 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-057 — React Router intro #57

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 141 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-058 — React Router intro #58

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 154 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-059 — React Router intro #59

  • Level: Advanced
  • Symptom: 404 on refresh at depth 167 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-060 — React Router intro #60

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 180 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-061 — React Router intro #61

  • Level: Beginner
  • Symptom: 404 on refresh at depth 193 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-062 — React Router intro #62

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 6 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-063 — React Router intro #63

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 19 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-064 — React Router intro #64

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 32 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-065 — React Router intro #65

  • Level: Advanced
  • Symptom: 404 on refresh at depth 45 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-066 — React Router intro #66

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 58 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-067 — React Router intro #67

  • Level: Beginner
  • Symptom: 404 on refresh at depth 71 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-068 — React Router intro #68

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 84 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-069 — React Router intro #69

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 97 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-070 — React Router intro #70

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 110 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-071 — React Router intro #71

  • Level: Advanced
  • Symptom: 404 on refresh at depth 123 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-072 — React Router intro #72

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 136 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-073 — React Router intro #73

  • Level: Beginner
  • Symptom: 404 on refresh at depth 149 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-074 — React Router intro #74

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 162 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-075 — React Router intro #75

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 175 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-076 — React Router intro #76

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 188 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-077 — React Router intro #77

  • Level: Advanced
  • Symptom: 404 on refresh at depth 1 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-078 — React Router intro #78

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 14 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-079 — React Router intro #79

  • Level: Beginner
  • Symptom: 404 on refresh at depth 27 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-080 — React Router intro #80

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 40 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-081 — React Router intro #81

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 53 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-082 — React Router intro #82

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 66 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-083 — React Router intro #83

  • Level: Advanced
  • Symptom: 404 on refresh at depth 79 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-084 — React Router intro #84

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 92 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-085 — React Router intro #85

  • Level: Beginner
  • Symptom: 404 on refresh at depth 105 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-086 — React Router intro #86

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 118 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-087 — React Router intro #87

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 131 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-088 — React Router intro #88

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 144 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-089 — React Router intro #89

  • Level: Advanced
  • Symptom: 404 on refresh at depth 157 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-090 — React Router intro #90

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 170 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-091 — React Router intro #91

  • Level: Beginner
  • Symptom: 404 on refresh at depth 183 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-092 — React Router intro #92

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 196 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-093 — React Router intro #93

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 9 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-094 — React Router intro #94

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 22 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-095 — React Router intro #95

  • Level: Advanced
  • Symptom: 404 on refresh at depth 35 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-096 — React Router intro #96

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 48 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-097 — React Router intro #97

  • Level: Beginner
  • Symptom: 404 on refresh at depth 61 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-098 — React Router intro #98

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 74 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-099 — React Router intro #99

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 87 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-100 — React Router intro #100

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 100 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-101 — React Router intro #101

  • Level: Advanced
  • Symptom: 404 on refresh at depth 113 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-102 — React Router intro #102

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 126 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-103 — React Router intro #103

  • Level: Beginner
  • Symptom: 404 on refresh at depth 139 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-104 — React Router intro #104

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 152 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-105 — React Router intro #105

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 165 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-106 — React Router intro #106

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 178 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-107 — React Router intro #107

  • Level: Advanced
  • Symptom: 404 on refresh at depth 191 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-108 — React Router intro #108

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 4 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-109 — React Router intro #109

  • Level: Beginner
  • Symptom: 404 on refresh at depth 17 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-110 — React Router intro #110

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 30 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-111 — React Router intro #111

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 43 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-112 — React Router intro #112

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 56 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-113 — React Router intro #113

  • Level: Advanced
  • Symptom: 404 on refresh at depth 69 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-114 — React Router intro #114

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 82 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-115 — React Router intro #115

  • Level: Beginner
  • Symptom: 404 on refresh at depth 95 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-116 — React Router intro #116

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 108 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-117 — React Router intro #117

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 121 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-118 — React Router intro #118

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 134 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-119 — React Router intro #119

  • Level: Advanced
  • Symptom: 404 on refresh at depth 147 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-120 — React Router intro #120

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 160 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-121 — React Router intro #121

  • Level: Beginner
  • Symptom: 404 on refresh at depth 173 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-122 — React Router intro #122

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 186 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-123 — React Router intro #123

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 199 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-124 — React Router intro #124

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 12 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-125 — React Router intro #125

  • Level: Advanced
  • Symptom: 404 on refresh at depth 25 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-126 — React Router intro #126

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 38 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-127 — React Router intro #127

  • Level: Beginner
  • Symptom: 404 on refresh at depth 51 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-128 — React Router intro #128

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 64 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-129 — React Router intro #129

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 77 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-130 — React Router intro #130

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 90 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-131 — React Router intro #131

  • Level: Advanced
  • Symptom: 404 on refresh at depth 103 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-132 — React Router intro #132

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 116 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-133 — React Router intro #133

  • Level: Beginner
  • Symptom: 404 on refresh at depth 129 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-134 — React Router intro #134

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 142 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-135 — React Router intro #135

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 155 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-136 — React Router intro #136

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 168 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-137 — React Router intro #137

  • Level: Advanced
  • Symptom: 404 on refresh at depth 181 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-138 — React Router intro #138

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 194 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-139 — React Router intro #139

  • Level: Beginner
  • Symptom: 404 on refresh at depth 7 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-140 — React Router intro #140

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 20 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-141 — React Router intro #141

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 33 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-142 — React Router intro #142

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 46 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-143 — React Router intro #143

  • Level: Advanced
  • Symptom: 404 on refresh at depth 59 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-144 — React Router intro #144

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 72 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-145 — React Router intro #145

  • Level: Beginner
  • Symptom: 404 on refresh at depth 85 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-146 — React Router intro #146

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 98 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-147 — React Router intro #147

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 111 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-148 — React Router intro #148

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 124 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-149 — React Router intro #149

  • Level: Advanced
  • Symptom: 404 on refresh at depth 137 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-150 — React Router intro #150

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 150 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-151 — React Router intro #151

  • Level: Beginner
  • Symptom: 404 on refresh at depth 163 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-152 — React Router intro #152

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 176 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-153 — React Router intro #153

  • Level: Intermediate
  • Symptom: 404 on refresh at depth 189 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Full page reload still happening because <a href> used instead of <Link>.
  • Primary remediation: Replace anchors with Link or NavLink for in-app navigation.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-154 — React Router intro #154

  • Level: Intermediate+
  • Symptom: 404 on refresh at depth 2 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: basename missing under subpath deploy causing broken links.
  • Primary remediation: Single Router at root; pass history features once.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-155 — React Router intro #155

  • Level: Advanced
  • Symptom: 404 on refresh at depth 15 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Using HashRouter to 'fix' deployment instead of configuring host rewrite.
  • Primary remediation: Pin react-router-dom major version; read migration guide when upgrading.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-156 — React Router intro #156

  • Level: Advanced+
  • Symptom: 404 on refresh at depth 28 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Hosting SPA without fallback route sends /dashboard to server 404.
  • Primary remediation: Configure server/CDN to serve index.html for unknown paths (or use framework host).
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-157 — React Router intro #157

  • Level: Beginner
  • Symptom: 404 on refresh at depth 41 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Router version mismatch between tutorial and installed package.
  • Primary remediation: Prefer BrowserRouter + correct hosting; reserve hash for legacy constraints only.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

RR0-158 — React Router intro #158

  • Level: Beginner+
  • Symptom: 404 on refresh at depth 54 or wrong active nav highlight.
  • Structure symptom: duplicated layout or import cycles after refactor.
  • Root cause class: Two Router providers nested causing confusing context errors.
  • Primary remediation: Set basename on Router when app lives under subfolder.
  • Verify: direct URL load, back/forward, deep link from email, mobile share sheet.
  • Interview one-liner: Client routing keeps UI stateful; the server must still know how to boot the SPA for arbitrary paths.

<< 2.11 Overview