{
  "title": "Learn React",
  "path": "/learn",
  "routes": [
    {
      "hasSectionHeader": true,
      "sectionHeader": "GET STARTED"
    },
    {
      "title": "Quick Start",
      "path": "/learn",
      "routes": [
        {
          "title": "Tutorial: Tic-Tac-Toe",
          "path": "/learn/tutorial-tic-tac-toe"
        },
        {
          "title": "Thinking in React",
          "path": "/learn/thinking-in-react"
        }
      ]
    },
    {
      "title": "Installation",
      "path": "/learn/installation",
      "routes": [
        {
          "title": "Creating a React App",
          "path": "/learn/creating-a-react-app"
        },
        {
          "title": "Build a React App from Scratch",
          "path": "/learn/build-a-react-app-from-scratch"
        },
        {
          "title": "Add React to an Existing Project",
          "path": "/learn/add-react-to-an-existing-project"
        }
      ]
    },
    {
      "title": "Setup",
      "path": "/learn/setup",
      "routes": [
        {
          "title": "Editor Setup",
          "path": "/learn/editor-setup"
        },
        {
          "title": "Using TypeScript",
          "path": "/learn/typescript"
        },
        {
          "title": "React Developer Tools",
          "path": "/learn/react-developer-tools"
        }
      ]
    },
    {
      "title": "React Compiler",
      "path": "/learn/react-compiler",
      "canary": true,
      "routes": [
        {
          "title": "Introduction",
          "path": "/learn/react-compiler/introduction"
        },
        {
          "title": "Installation",
          "path": "/learn/react-compiler/installation"
        },
        {
          "title": "Incremental Adoption",
          "path": "/learn/react-compiler/incremental-adoption"
        },
        {
          "title": "Debugging and Troubleshooting",
          "path": "/learn/react-compiler/debugging"
        }
      ]
    },
    {
      "hasSectionHeader": true,
      "sectionHeader": "LEARN REACT"
    },
    {
      "title": "Describing the UI",
      "tags": [],
      "path": "/learn/describing-the-ui",
      "routes": [
        {
          "title": "Your First Component",
          "path": "/learn/your-first-component"
        },
        {
          "title": "Importing and Exporting Components",
          "path": "/learn/importing-and-exporting-components"
        },
        {
          "title": "Writing Markup with JSX",
          "path": "/learn/writing-markup-with-jsx"
        },
        {
          "title": "JavaScript in JSX with Curly Braces",
          "path": "/learn/javascript-in-jsx-with-curly-braces"
        },
        {
          "title": "Passing Props to a Component",
          "path": "/learn/passing-props-to-a-component"
        },
        {
          "title": "Conditional Rendering",
          "path": "/learn/conditional-rendering"
        },
        {
          "title": "Rendering Lists",
          "path": "/learn/rendering-lists"
        },
        {
          "title": "Keeping Components Pure",
          "path": "/learn/keeping-components-pure"
        },
        {
          "title": "Your UI as a Tree",
          "path": "/learn/understanding-your-ui-as-a-tree"
        }
      ]
    },
    {
      "title": "Adding Interactivity",
      "path": "/learn/adding-interactivity",
      "tags": [],
      "routes": [
        {
          "title": "Responding to Events",
          "path": "/learn/responding-to-events"
        },
        {
          "title": "State: A Component's Memory",
          "path": "/learn/state-a-components-memory"
        },
        {
          "title": "Render and Commit",
          "path": "/learn/render-and-commit"
        },
        {
          "title": "State as a Snapshot",
          "path": "/learn/state-as-a-snapshot"
        },
        {
          "title": "Queueing a Series of State Updates",
          "path": "/learn/queueing-a-series-of-state-updates"
        },
        {
          "title": "Updating Objects in State",
          "path": "/learn/updating-objects-in-state"
        },
        {
          "title": "Updating Arrays in State",
          "path": "/learn/updating-arrays-in-state"
        }
      ]
    },
    {
      "title": "Managing State",
      "path": "/learn/managing-state",
      "tags": ["intermediate"],
      "routes": [
        {
          "title": "Reacting to Input with State",
          "path": "/learn/reacting-to-input-with-state"
        },
        {
          "title": "Choosing the State Structure",
          "path": "/learn/choosing-the-state-structure"
        },
        {
          "title": "Sharing State Between Components",
          "path": "/learn/sharing-state-between-components"
        },
        {
          "title": "Preserving and Resetting State",
          "path": "/learn/preserving-and-resetting-state"
        },
        {
          "title": "Extracting State Logic into a Reducer",
          "path": "/learn/extracting-state-logic-into-a-reducer"
        },
        {
          "title": "Passing Data Deeply with Context",
          "path": "/learn/passing-data-deeply-with-context"
        },
        {
          "title": "Scaling Up with Reducer and Context",
          "path": "/learn/scaling-up-with-reducer-and-context"
        }
      ]
    },
    {
      "title": "Escape Hatches",
      "path": "/learn/escape-hatches",
      "tags": ["advanced"],
      "routes": [
        {
          "title": "Referencing Values with Refs",
          "path": "/learn/referencing-values-with-refs"
        },
        {
          "title": "Manipulating the DOM with Refs",
          "path": "/learn/manipulating-the-dom-with-refs"
        },
        {
          "title": "Synchronizing with Effects",
          "path": "/learn/synchronizing-with-effects"
        },
        {
          "title": "You Might Not Need an Effect",
          "path": "/learn/you-might-not-need-an-effect"
        },
        {
          "title": "Lifecycle of Reactive Effects",
          "path": "/learn/lifecycle-of-reactive-effects"
        },
        {
          "title": "Separating Events from Effects",
          "path": "/learn/separating-events-from-effects"
        },
        {
          "title": "Removing Effect Dependencies",
          "path": "/learn/removing-effect-dependencies"
        },
        {
          "title": "Reusing Logic with Custom Hooks",
          "path": "/learn/reusing-logic-with-custom-hooks"
        }
      ]
    }
  ]
}
