[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-start-core":3,"mdc-mghh1o-key":47,"related-repo-tanstack-start-core":2675,"related-org-tanstack-start-core":2781},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":42,"sourceUrl":45,"mdContent":46},"start-core","configure TanStack Start projects","Core overview for TanStack Start: tanstackStart() Vite plugin, getRouter() factory, root route document shell (HeadContent, Scripts, Outlet), client\u002Fserver entry points, routeTree.gen.ts, tsconfig configuration. Entry point for all Start skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19],{"name":13,"slug":14,"type":15},"Architecture","architecture","tag",{"name":17,"slug":18,"type":15},"Vite","vite",{"name":9,"slug":8,"type":15},14787,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter","2026-07-30T05:26:53.470516",null,1761,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"framework","fullstack","javascript","react","route","router","routing","rpc","search","searchparams","server-functions","ssr","state-management","typesafe","typescript","url",{"repoUrl":21,"stars":20,"forks":24,"topics":43,"description":44},[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more).","https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter\u002Ftree\u002FHEAD\u002Fpackages\u002Fstart-client-core\u002Fskills\u002Fstart-core","---\nname: start-core\ndescription: >-\n  Core overview for TanStack Start: tanstackStart() Vite plugin,\n  getRouter() factory, root route document shell (HeadContent,\n  Scripts, Outlet), client\u002Fserver entry points, routeTree.gen.ts,\n  tsconfig configuration. Entry point for all Start skills.\nmetadata:\n  type: core\n  library: tanstack-start\n  library_version: '1.170.14'\nsources:\n  - TanStack\u002Frouter:docs\u002Fstart\u002Fframework\u002Freact\u002Fbuild-from-scratch.md\n  - TanStack\u002Frouter:docs\u002Fstart\u002Fframework\u002Freact\u002Fquick-start.md\n  - TanStack\u002Frouter:docs\u002Fstart\u002Fframework\u002Freact\u002Fguide\u002Frouting.md\n---\n\n# TanStack Start Core\n\nTanStack Start is a full-stack React framework built on TanStack Router and Vite. It adds SSR, streaming, server functions (type-safe RPCs), middleware, server routes, and universal deployment.\n\n> **CRITICAL**: All code in TanStack Start is ISOMORPHIC by default — it runs in BOTH server and client environments. Loaders run on both server AND client. To run code exclusively on the server, use `createServerFn`. This is the #1 AI agent mistake.\n> **CRITICAL**: TanStack Start is NOT Next.js. Do not generate `getServerSideProps`, `\"use server\"` directives, `app\u002Flayout.tsx`, or any Next.js\u002FRemix patterns. Use `createServerFn` for server-only code.\n> **CRITICAL**: Types are FULLY INFERRED. Never cast, never annotate inferred values.\n\nUse this entry skill to pick one primary workflow. Do not load every Start sub-skill. Add another only when the implementation crosses that boundary; for example, a protected mutation needs `server-functions` plus `auth-server-primitives`, while a public REST endpoint needs `server-routes` alone.\n\n## Sub-Skills\n\n| Task                                             | Sub-Skill                                                                       |\n| ------------------------------------------------ | ------------------------------------------------------------------------------- |\n| Type-safe RPCs, data fetching, mutations         | [start-core\u002Fserver-functions\u002FSKILL.md](.\u002Fserver-functions\u002FSKILL.md)             |\n| Request\u002Ffunction middleware, context, auth       | [start-core\u002Fmiddleware\u002FSKILL.md](.\u002Fmiddleware\u002FSKILL.md)                         |\n| Server-side auth: sessions, cookies, OAuth, CSRF | [start-core\u002Fauth-server-primitives\u002FSKILL.md](.\u002Fauth-server-primitives\u002FSKILL.md) |\n| Isomorphic execution, environment boundaries     | [start-core\u002Fexecution-model\u002FSKILL.md](.\u002Fexecution-model\u002FSKILL.md)               |\n| REST API endpoints alongside app routes          | [start-core\u002Fserver-routes\u002FSKILL.md](.\u002Fserver-routes\u002FSKILL.md)                   |\n| Hosting, SSR modes, prerendering, SEO            | [start-core\u002Fdeployment\u002FSKILL.md](.\u002Fdeployment\u002FSKILL.md)                         |\n\n## Quick Decision Tree\n\n```text\nNeed to run code exclusively on the server (DB, secrets)?\n  → start-core\u002Fserver-functions\n\nNeed auth checks, logging, or shared logic across server functions?\n  → start-core\u002Fmiddleware\n\nNeed to add login, sessions, OAuth, CSRF, password reset?\n  → start-core\u002Fauth-server-primitives\n\nNeed to understand where code runs (server vs client)?\n  → start-core\u002Fexecution-model\n\nNeed a REST API endpoint (GET\u002FPOST\u002FPUT\u002FDELETE)?\n  → start-core\u002Fserver-routes\n\nNeed to deploy, configure SSR, or prerender?\n  → start-core\u002Fdeployment\n```\n\n## Full-Stack Delivery Workflow\n\nFor application data loaded by a Start route:\n\n1. Put database, filesystem, secrets, and persistence code behind `createServerFn`.\n2. Call the server function directly from the route loader. Do not self-fetch a relative `\u002Fapi\u002F...` URL from an SSR loader.\n3. Validate every input and enforce auth in the server function or middleware. `beforeLoad` only protects route UX.\n4. After a mutation resolves, invalidate the router or the external query cache and await the refresh when the UI must be current before continuing.\n5. For schema changes, update storage, validation, handler serialization, loader, and UI. Assert the actual runtime payload; typechecking alone cannot detect an omitted serialized field.\n\nUse a server route when the raw HTTP contract is the product: webhooks, third-party clients, feeds, file responses, or a public REST API. When the Start UI and a server route share data, call one server-side service from both instead of making the SSR loader fetch its own API route.\n\nBefore finishing, test the initial SSR request, client navigation, mutation followed by refresh, and a direct anonymous request to every protected endpoint.\n\n## Project Setup\n\n### 1. Install Dependencies\n\n```bash\nnpm i @tanstack\u002Freact-start @tanstack\u002Freact-router react react-dom\nnpm i -D vite @vitejs\u002Fplugin-react typescript\n```\n\n### 2. Configure Vite\n\n```ts\n\u002F\u002F vite.config.ts\nimport { defineConfig } from 'vite'\nimport { tanstackStart } from '@tanstack\u002Freact-start\u002Fplugin\u002Fvite'\nimport viteReact from '@vitejs\u002Fplugin-react'\n\nexport default defineConfig({\n  plugins: [\n    \u002F\u002F MUST come before react()\n    tanstackStart(),\n    viteReact(),\n  ],\n})\n```\n\n### 3. Create Router Factory\n\n```tsx\n\u002F\u002F src\u002Frouter.tsx\nimport { createRouter } from '@tanstack\u002Freact-router'\nimport { routeTree } from '.\u002FrouteTree.gen'\n\nexport function getRouter() {\n  const router = createRouter({\n    routeTree,\n    scrollRestoration: true,\n  })\n\n  return router\n}\n```\n\n### 4. Create Root Route with Document Shell\n\n```tsx\n\u002F\u002F src\u002Froutes\u002F__root.tsx\nimport type { ReactNode } from 'react'\nimport {\n  Outlet,\n  createRootRoute,\n  HeadContent,\n  Scripts,\n} from '@tanstack\u002Freact-router'\n\nexport const Route = createRootRoute({\n  head: () => ({\n    meta: [\n      { charSet: 'utf-8' },\n      { name: 'viewport', content: 'width=device-width, initial-scale=1' },\n      { title: 'My App' },\n    ],\n  }),\n  component: RootComponent,\n})\n\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003Cbody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n```\n\n### 5. Create Index Route with Server Function\n\n```tsx\n\u002F\u002F src\u002Froutes\u002Findex.tsx\nimport { createFileRoute } from '@tanstack\u002Freact-router'\nimport { createServerFn } from '@tanstack\u002Freact-start'\n\nconst getGreeting = createServerFn({ method: 'GET' }).handler(async () => {\n  return { message: 'Hello from the server!' }\n})\n\nexport const Route = createFileRoute('\u002F')({\n  loader: () => getGreeting(),\n  component: HomePage,\n})\n\nfunction HomePage() {\n  const data = Route.useLoaderData()\n  return \u003Ch1>{data.message}\u003C\u002Fh1>\n}\n```\n\n## Common Mistakes\n\n### 1. CRITICAL: React plugin before Start plugin in Vite config\n\n```ts\n\u002F\u002F WRONG — route generation and server function compilation fail\nplugins: [react(), tanstackStart()]\n\n\u002F\u002F CORRECT — Start plugin must come first\nplugins: [tanstackStart(), react()]\n```\n\n### 2. HIGH: Enabling verbatimModuleSyntax in tsconfig\n\n`verbatimModuleSyntax` causes server bundles to leak into client bundles. Keep it disabled.\n\n### 3. HIGH: Missing Scripts component in root route\n\nThe `\u003CScripts \u002F>` component must be rendered in the `\u003Cbody>` of the root route. Without it, client-side JavaScript does not load and hydration fails.\n\n```tsx\n\u002F\u002F WRONG — no Scripts\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003Cbody>\n        \u003COutlet \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n\n\u002F\u002F CORRECT — Scripts in body\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003Cbody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n```\n\n## Version Note\n\nThis skill targets `@tanstack\u002Fstart-client-core` v1.170.14.\n",{"data":48,"body":57},{"name":4,"description":6,"metadata":49,"sources":53},{"type":50,"library":51,"library_version":52},"core","tanstack-start","1.170.14",[54,55,56],"TanStack\u002Frouter:docs\u002Fstart\u002Fframework\u002Freact\u002Fbuild-from-scratch.md","TanStack\u002Frouter:docs\u002Fstart\u002Fframework\u002Freact\u002Fquick-start.md","TanStack\u002Frouter:docs\u002Fstart\u002Fframework\u002Freact\u002Fguide\u002Frouting.md",{"type":58,"children":59},"root",[60,69,75,142,170,177,308,314,326,332,337,390,395,400,406,413,492,498,761,767,996,1002,1641,1647,2117,2123,2129,2233,2239,2250,2256,2277,2650,2656,2669],{"type":61,"tag":62,"props":63,"children":65},"element","h1",{"id":64},"tanstack-start-core",[66],{"type":67,"value":68},"text","TanStack Start Core",{"type":61,"tag":70,"props":71,"children":72},"p",{},[73],{"type":67,"value":74},"TanStack Start is a full-stack React framework built on TanStack Router and Vite. It adds SSR, streaming, server functions (type-safe RPCs), middleware, server routes, and universal deployment.",{"type":61,"tag":76,"props":77,"children":78},"blockquote",{},[79],{"type":61,"tag":70,"props":80,"children":81},{},[82,88,90,97,99,103,105,111,113,119,121,127,129,134,136,140],{"type":61,"tag":83,"props":84,"children":85},"strong",{},[86],{"type":67,"value":87},"CRITICAL",{"type":67,"value":89},": All code in TanStack Start is ISOMORPHIC by default — it runs in BOTH server and client environments. Loaders run on both server AND client. To run code exclusively on the server, use ",{"type":61,"tag":91,"props":92,"children":94},"code",{"className":93},[],[95],{"type":67,"value":96},"createServerFn",{"type":67,"value":98},". This is the #1 AI agent mistake.\n",{"type":61,"tag":83,"props":100,"children":101},{},[102],{"type":67,"value":87},{"type":67,"value":104},": TanStack Start is NOT Next.js. Do not generate ",{"type":61,"tag":91,"props":106,"children":108},{"className":107},[],[109],{"type":67,"value":110},"getServerSideProps",{"type":67,"value":112},", ",{"type":61,"tag":91,"props":114,"children":116},{"className":115},[],[117],{"type":67,"value":118},"\"use server\"",{"type":67,"value":120}," directives, ",{"type":61,"tag":91,"props":122,"children":124},{"className":123},[],[125],{"type":67,"value":126},"app\u002Flayout.tsx",{"type":67,"value":128},", or any Next.js\u002FRemix patterns. Use ",{"type":61,"tag":91,"props":130,"children":132},{"className":131},[],[133],{"type":67,"value":96},{"type":67,"value":135}," for server-only code.\n",{"type":61,"tag":83,"props":137,"children":138},{},[139],{"type":67,"value":87},{"type":67,"value":141},": Types are FULLY INFERRED. Never cast, never annotate inferred values.",{"type":61,"tag":70,"props":143,"children":144},{},[145,147,152,154,160,162,168],{"type":67,"value":146},"Use this entry skill to pick one primary workflow. Do not load every Start sub-skill. Add another only when the implementation crosses that boundary; for example, a protected mutation needs ",{"type":61,"tag":91,"props":148,"children":150},{"className":149},[],[151],{"type":67,"value":36},{"type":67,"value":153}," plus ",{"type":61,"tag":91,"props":155,"children":157},{"className":156},[],[158],{"type":67,"value":159},"auth-server-primitives",{"type":67,"value":161},", while a public REST endpoint needs ",{"type":61,"tag":91,"props":163,"children":165},{"className":164},[],[166],{"type":67,"value":167},"server-routes",{"type":67,"value":169}," alone.",{"type":61,"tag":171,"props":172,"children":174},"h2",{"id":173},"sub-skills",[175],{"type":67,"value":176},"Sub-Skills",{"type":61,"tag":178,"props":179,"children":180},"table",{},[181,200],{"type":61,"tag":182,"props":183,"children":184},"thead",{},[185],{"type":61,"tag":186,"props":187,"children":188},"tr",{},[189,195],{"type":61,"tag":190,"props":191,"children":192},"th",{},[193],{"type":67,"value":194},"Task",{"type":61,"tag":190,"props":196,"children":197},{},[198],{"type":67,"value":199},"Sub-Skill",{"type":61,"tag":201,"props":202,"children":203},"tbody",{},[204,223,240,257,274,291],{"type":61,"tag":186,"props":205,"children":206},{},[207,213],{"type":61,"tag":208,"props":209,"children":210},"td",{},[211],{"type":67,"value":212},"Type-safe RPCs, data fetching, mutations",{"type":61,"tag":208,"props":214,"children":215},{},[216],{"type":61,"tag":217,"props":218,"children":220},"a",{"href":219},".\u002Fserver-functions\u002FSKILL.md",[221],{"type":67,"value":222},"start-core\u002Fserver-functions\u002FSKILL.md",{"type":61,"tag":186,"props":224,"children":225},{},[226,231],{"type":61,"tag":208,"props":227,"children":228},{},[229],{"type":67,"value":230},"Request\u002Ffunction middleware, context, auth",{"type":61,"tag":208,"props":232,"children":233},{},[234],{"type":61,"tag":217,"props":235,"children":237},{"href":236},".\u002Fmiddleware\u002FSKILL.md",[238],{"type":67,"value":239},"start-core\u002Fmiddleware\u002FSKILL.md",{"type":61,"tag":186,"props":241,"children":242},{},[243,248],{"type":61,"tag":208,"props":244,"children":245},{},[246],{"type":67,"value":247},"Server-side auth: sessions, cookies, OAuth, CSRF",{"type":61,"tag":208,"props":249,"children":250},{},[251],{"type":61,"tag":217,"props":252,"children":254},{"href":253},".\u002Fauth-server-primitives\u002FSKILL.md",[255],{"type":67,"value":256},"start-core\u002Fauth-server-primitives\u002FSKILL.md",{"type":61,"tag":186,"props":258,"children":259},{},[260,265],{"type":61,"tag":208,"props":261,"children":262},{},[263],{"type":67,"value":264},"Isomorphic execution, environment boundaries",{"type":61,"tag":208,"props":266,"children":267},{},[268],{"type":61,"tag":217,"props":269,"children":271},{"href":270},".\u002Fexecution-model\u002FSKILL.md",[272],{"type":67,"value":273},"start-core\u002Fexecution-model\u002FSKILL.md",{"type":61,"tag":186,"props":275,"children":276},{},[277,282],{"type":61,"tag":208,"props":278,"children":279},{},[280],{"type":67,"value":281},"REST API endpoints alongside app routes",{"type":61,"tag":208,"props":283,"children":284},{},[285],{"type":61,"tag":217,"props":286,"children":288},{"href":287},".\u002Fserver-routes\u002FSKILL.md",[289],{"type":67,"value":290},"start-core\u002Fserver-routes\u002FSKILL.md",{"type":61,"tag":186,"props":292,"children":293},{},[294,299],{"type":61,"tag":208,"props":295,"children":296},{},[297],{"type":67,"value":298},"Hosting, SSR modes, prerendering, SEO",{"type":61,"tag":208,"props":300,"children":301},{},[302],{"type":61,"tag":217,"props":303,"children":305},{"href":304},".\u002Fdeployment\u002FSKILL.md",[306],{"type":67,"value":307},"start-core\u002Fdeployment\u002FSKILL.md",{"type":61,"tag":171,"props":309,"children":311},{"id":310},"quick-decision-tree",[312],{"type":67,"value":313},"Quick Decision Tree",{"type":61,"tag":315,"props":316,"children":321},"pre",{"className":317,"code":319,"language":67,"meta":320},[318],"language-text","Need to run code exclusively on the server (DB, secrets)?\n  → start-core\u002Fserver-functions\n\nNeed auth checks, logging, or shared logic across server functions?\n  → start-core\u002Fmiddleware\n\nNeed to add login, sessions, OAuth, CSRF, password reset?\n  → start-core\u002Fauth-server-primitives\n\nNeed to understand where code runs (server vs client)?\n  → start-core\u002Fexecution-model\n\nNeed a REST API endpoint (GET\u002FPOST\u002FPUT\u002FDELETE)?\n  → start-core\u002Fserver-routes\n\nNeed to deploy, configure SSR, or prerender?\n  → start-core\u002Fdeployment\n","",[322],{"type":61,"tag":91,"props":323,"children":324},{"__ignoreMap":320},[325],{"type":67,"value":319},{"type":61,"tag":171,"props":327,"children":329},{"id":328},"full-stack-delivery-workflow",[330],{"type":67,"value":331},"Full-Stack Delivery Workflow",{"type":61,"tag":70,"props":333,"children":334},{},[335],{"type":67,"value":336},"For application data loaded by a Start route:",{"type":61,"tag":338,"props":339,"children":340},"ol",{},[341,354,367,380,385],{"type":61,"tag":342,"props":343,"children":344},"li",{},[345,347,352],{"type":67,"value":346},"Put database, filesystem, secrets, and persistence code behind ",{"type":61,"tag":91,"props":348,"children":350},{"className":349},[],[351],{"type":67,"value":96},{"type":67,"value":353},".",{"type":61,"tag":342,"props":355,"children":356},{},[357,359,365],{"type":67,"value":358},"Call the server function directly from the route loader. Do not self-fetch a relative ",{"type":61,"tag":91,"props":360,"children":362},{"className":361},[],[363],{"type":67,"value":364},"\u002Fapi\u002F...",{"type":67,"value":366}," URL from an SSR loader.",{"type":61,"tag":342,"props":368,"children":369},{},[370,372,378],{"type":67,"value":371},"Validate every input and enforce auth in the server function or middleware. ",{"type":61,"tag":91,"props":373,"children":375},{"className":374},[],[376],{"type":67,"value":377},"beforeLoad",{"type":67,"value":379}," only protects route UX.",{"type":61,"tag":342,"props":381,"children":382},{},[383],{"type":67,"value":384},"After a mutation resolves, invalidate the router or the external query cache and await the refresh when the UI must be current before continuing.",{"type":61,"tag":342,"props":386,"children":387},{},[388],{"type":67,"value":389},"For schema changes, update storage, validation, handler serialization, loader, and UI. Assert the actual runtime payload; typechecking alone cannot detect an omitted serialized field.",{"type":61,"tag":70,"props":391,"children":392},{},[393],{"type":67,"value":394},"Use a server route when the raw HTTP contract is the product: webhooks, third-party clients, feeds, file responses, or a public REST API. When the Start UI and a server route share data, call one server-side service from both instead of making the SSR loader fetch its own API route.",{"type":61,"tag":70,"props":396,"children":397},{},[398],{"type":67,"value":399},"Before finishing, test the initial SSR request, client navigation, mutation followed by refresh, and a direct anonymous request to every protected endpoint.",{"type":61,"tag":171,"props":401,"children":403},{"id":402},"project-setup",[404],{"type":67,"value":405},"Project Setup",{"type":61,"tag":407,"props":408,"children":410},"h3",{"id":409},"_1-install-dependencies",[411],{"type":67,"value":412},"1. Install Dependencies",{"type":61,"tag":315,"props":414,"children":418},{"className":415,"code":416,"language":417,"meta":320,"style":320},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm i @tanstack\u002Freact-start @tanstack\u002Freact-router react react-dom\nnpm i -D vite @vitejs\u002Fplugin-react typescript\n","bash",[419],{"type":61,"tag":91,"props":420,"children":421},{"__ignoreMap":320},[422,460],{"type":61,"tag":423,"props":424,"children":427},"span",{"class":425,"line":426},"line",1,[428,434,440,445,450,455],{"type":61,"tag":423,"props":429,"children":431},{"style":430},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[432],{"type":67,"value":433},"npm",{"type":61,"tag":423,"props":435,"children":437},{"style":436},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[438],{"type":67,"value":439}," i",{"type":61,"tag":423,"props":441,"children":442},{"style":436},[443],{"type":67,"value":444}," @tanstack\u002Freact-start",{"type":61,"tag":423,"props":446,"children":447},{"style":436},[448],{"type":67,"value":449}," @tanstack\u002Freact-router",{"type":61,"tag":423,"props":451,"children":452},{"style":436},[453],{"type":67,"value":454}," react",{"type":61,"tag":423,"props":456,"children":457},{"style":436},[458],{"type":67,"value":459}," react-dom\n",{"type":61,"tag":423,"props":461,"children":463},{"class":425,"line":462},2,[464,468,472,477,482,487],{"type":61,"tag":423,"props":465,"children":466},{"style":430},[467],{"type":67,"value":433},{"type":61,"tag":423,"props":469,"children":470},{"style":436},[471],{"type":67,"value":439},{"type":61,"tag":423,"props":473,"children":474},{"style":436},[475],{"type":67,"value":476}," -D",{"type":61,"tag":423,"props":478,"children":479},{"style":436},[480],{"type":67,"value":481}," vite",{"type":61,"tag":423,"props":483,"children":484},{"style":436},[485],{"type":67,"value":486}," @vitejs\u002Fplugin-react",{"type":61,"tag":423,"props":488,"children":489},{"style":436},[490],{"type":67,"value":491}," typescript\n",{"type":61,"tag":407,"props":493,"children":495},{"id":494},"_2-configure-vite",[496],{"type":67,"value":497},"2. Configure Vite",{"type":61,"tag":315,"props":499,"children":503},{"className":500,"code":501,"language":502,"meta":320,"style":320},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F vite.config.ts\nimport { defineConfig } from 'vite'\nimport { tanstackStart } from '@tanstack\u002Freact-start\u002Fplugin\u002Fvite'\nimport viteReact from '@vitejs\u002Fplugin-react'\n\nexport default defineConfig({\n  plugins: [\n    \u002F\u002F MUST come before react()\n    tanstackStart(),\n    viteReact(),\n  ],\n})\n","ts",[504],{"type":61,"tag":91,"props":505,"children":506},{"__ignoreMap":320},[507,516,561,599,630,640,669,689,698,717,734,747],{"type":61,"tag":423,"props":508,"children":509},{"class":425,"line":426},[510],{"type":61,"tag":423,"props":511,"children":513},{"style":512},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[514],{"type":67,"value":515},"\u002F\u002F vite.config.ts\n",{"type":61,"tag":423,"props":517,"children":518},{"class":425,"line":462},[519,525,531,537,542,547,552,556],{"type":61,"tag":423,"props":520,"children":522},{"style":521},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[523],{"type":67,"value":524},"import",{"type":61,"tag":423,"props":526,"children":528},{"style":527},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[529],{"type":67,"value":530}," {",{"type":61,"tag":423,"props":532,"children":534},{"style":533},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[535],{"type":67,"value":536}," defineConfig",{"type":61,"tag":423,"props":538,"children":539},{"style":527},[540],{"type":67,"value":541}," }",{"type":61,"tag":423,"props":543,"children":544},{"style":521},[545],{"type":67,"value":546}," from",{"type":61,"tag":423,"props":548,"children":549},{"style":527},[550],{"type":67,"value":551}," '",{"type":61,"tag":423,"props":553,"children":554},{"style":436},[555],{"type":67,"value":18},{"type":61,"tag":423,"props":557,"children":558},{"style":527},[559],{"type":67,"value":560},"'\n",{"type":61,"tag":423,"props":562,"children":564},{"class":425,"line":563},3,[565,569,573,578,582,586,590,595],{"type":61,"tag":423,"props":566,"children":567},{"style":521},[568],{"type":67,"value":524},{"type":61,"tag":423,"props":570,"children":571},{"style":527},[572],{"type":67,"value":530},{"type":61,"tag":423,"props":574,"children":575},{"style":533},[576],{"type":67,"value":577}," tanstackStart",{"type":61,"tag":423,"props":579,"children":580},{"style":527},[581],{"type":67,"value":541},{"type":61,"tag":423,"props":583,"children":584},{"style":521},[585],{"type":67,"value":546},{"type":61,"tag":423,"props":587,"children":588},{"style":527},[589],{"type":67,"value":551},{"type":61,"tag":423,"props":591,"children":592},{"style":436},[593],{"type":67,"value":594},"@tanstack\u002Freact-start\u002Fplugin\u002Fvite",{"type":61,"tag":423,"props":596,"children":597},{"style":527},[598],{"type":67,"value":560},{"type":61,"tag":423,"props":600,"children":602},{"class":425,"line":601},4,[603,607,612,617,621,626],{"type":61,"tag":423,"props":604,"children":605},{"style":521},[606],{"type":67,"value":524},{"type":61,"tag":423,"props":608,"children":609},{"style":533},[610],{"type":67,"value":611}," viteReact ",{"type":61,"tag":423,"props":613,"children":614},{"style":521},[615],{"type":67,"value":616},"from",{"type":61,"tag":423,"props":618,"children":619},{"style":527},[620],{"type":67,"value":551},{"type":61,"tag":423,"props":622,"children":623},{"style":436},[624],{"type":67,"value":625},"@vitejs\u002Fplugin-react",{"type":61,"tag":423,"props":627,"children":628},{"style":527},[629],{"type":67,"value":560},{"type":61,"tag":423,"props":631,"children":633},{"class":425,"line":632},5,[634],{"type":61,"tag":423,"props":635,"children":637},{"emptyLinePlaceholder":636},true,[638],{"type":67,"value":639},"\n",{"type":61,"tag":423,"props":641,"children":643},{"class":425,"line":642},6,[644,649,654,659,664],{"type":61,"tag":423,"props":645,"children":646},{"style":521},[647],{"type":67,"value":648},"export",{"type":61,"tag":423,"props":650,"children":651},{"style":521},[652],{"type":67,"value":653}," default",{"type":61,"tag":423,"props":655,"children":657},{"style":656},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[658],{"type":67,"value":536},{"type":61,"tag":423,"props":660,"children":661},{"style":533},[662],{"type":67,"value":663},"(",{"type":61,"tag":423,"props":665,"children":666},{"style":527},[667],{"type":67,"value":668},"{\n",{"type":61,"tag":423,"props":670,"children":672},{"class":425,"line":671},7,[673,679,684],{"type":61,"tag":423,"props":674,"children":676},{"style":675},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[677],{"type":67,"value":678},"  plugins",{"type":61,"tag":423,"props":680,"children":681},{"style":527},[682],{"type":67,"value":683},":",{"type":61,"tag":423,"props":685,"children":686},{"style":533},[687],{"type":67,"value":688}," [\n",{"type":61,"tag":423,"props":690,"children":692},{"class":425,"line":691},8,[693],{"type":61,"tag":423,"props":694,"children":695},{"style":512},[696],{"type":67,"value":697},"    \u002F\u002F MUST come before react()\n",{"type":61,"tag":423,"props":699,"children":701},{"class":425,"line":700},9,[702,707,712],{"type":61,"tag":423,"props":703,"children":704},{"style":656},[705],{"type":67,"value":706},"    tanstackStart",{"type":61,"tag":423,"props":708,"children":709},{"style":533},[710],{"type":67,"value":711},"()",{"type":61,"tag":423,"props":713,"children":714},{"style":527},[715],{"type":67,"value":716},",\n",{"type":61,"tag":423,"props":718,"children":720},{"class":425,"line":719},10,[721,726,730],{"type":61,"tag":423,"props":722,"children":723},{"style":656},[724],{"type":67,"value":725},"    viteReact",{"type":61,"tag":423,"props":727,"children":728},{"style":533},[729],{"type":67,"value":711},{"type":61,"tag":423,"props":731,"children":732},{"style":527},[733],{"type":67,"value":716},{"type":61,"tag":423,"props":735,"children":737},{"class":425,"line":736},11,[738,743],{"type":61,"tag":423,"props":739,"children":740},{"style":533},[741],{"type":67,"value":742},"  ]",{"type":61,"tag":423,"props":744,"children":745},{"style":527},[746],{"type":67,"value":716},{"type":61,"tag":423,"props":748,"children":750},{"class":425,"line":749},12,[751,756],{"type":61,"tag":423,"props":752,"children":753},{"style":527},[754],{"type":67,"value":755},"}",{"type":61,"tag":423,"props":757,"children":758},{"style":533},[759],{"type":67,"value":760},")\n",{"type":61,"tag":407,"props":762,"children":764},{"id":763},"_3-create-router-factory",[765],{"type":67,"value":766},"3. Create Router Factory",{"type":61,"tag":315,"props":768,"children":772},{"className":769,"code":770,"language":771,"meta":320,"style":320},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F src\u002Frouter.tsx\nimport { createRouter } from '@tanstack\u002Freact-router'\nimport { routeTree } from '.\u002FrouteTree.gen'\n\nexport function getRouter() {\n  const router = createRouter({\n    routeTree,\n    scrollRestoration: true,\n  })\n\n  return router\n}\n","tsx",[773],{"type":61,"tag":91,"props":774,"children":775},{"__ignoreMap":320},[776,784,821,858,865,892,922,934,956,968,975,988],{"type":61,"tag":423,"props":777,"children":778},{"class":425,"line":426},[779],{"type":61,"tag":423,"props":780,"children":781},{"style":512},[782],{"type":67,"value":783},"\u002F\u002F src\u002Frouter.tsx\n",{"type":61,"tag":423,"props":785,"children":786},{"class":425,"line":462},[787,791,795,800,804,808,812,817],{"type":61,"tag":423,"props":788,"children":789},{"style":521},[790],{"type":67,"value":524},{"type":61,"tag":423,"props":792,"children":793},{"style":527},[794],{"type":67,"value":530},{"type":61,"tag":423,"props":796,"children":797},{"style":533},[798],{"type":67,"value":799}," createRouter",{"type":61,"tag":423,"props":801,"children":802},{"style":527},[803],{"type":67,"value":541},{"type":61,"tag":423,"props":805,"children":806},{"style":521},[807],{"type":67,"value":546},{"type":61,"tag":423,"props":809,"children":810},{"style":527},[811],{"type":67,"value":551},{"type":61,"tag":423,"props":813,"children":814},{"style":436},[815],{"type":67,"value":816},"@tanstack\u002Freact-router",{"type":61,"tag":423,"props":818,"children":819},{"style":527},[820],{"type":67,"value":560},{"type":61,"tag":423,"props":822,"children":823},{"class":425,"line":563},[824,828,832,837,841,845,849,854],{"type":61,"tag":423,"props":825,"children":826},{"style":521},[827],{"type":67,"value":524},{"type":61,"tag":423,"props":829,"children":830},{"style":527},[831],{"type":67,"value":530},{"type":61,"tag":423,"props":833,"children":834},{"style":533},[835],{"type":67,"value":836}," routeTree",{"type":61,"tag":423,"props":838,"children":839},{"style":527},[840],{"type":67,"value":541},{"type":61,"tag":423,"props":842,"children":843},{"style":521},[844],{"type":67,"value":546},{"type":61,"tag":423,"props":846,"children":847},{"style":527},[848],{"type":67,"value":551},{"type":61,"tag":423,"props":850,"children":851},{"style":436},[852],{"type":67,"value":853},".\u002FrouteTree.gen",{"type":61,"tag":423,"props":855,"children":856},{"style":527},[857],{"type":67,"value":560},{"type":61,"tag":423,"props":859,"children":860},{"class":425,"line":601},[861],{"type":61,"tag":423,"props":862,"children":863},{"emptyLinePlaceholder":636},[864],{"type":67,"value":639},{"type":61,"tag":423,"props":866,"children":867},{"class":425,"line":632},[868,872,878,883,887],{"type":61,"tag":423,"props":869,"children":870},{"style":521},[871],{"type":67,"value":648},{"type":61,"tag":423,"props":873,"children":875},{"style":874},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[876],{"type":67,"value":877}," function",{"type":61,"tag":423,"props":879,"children":880},{"style":656},[881],{"type":67,"value":882}," getRouter",{"type":61,"tag":423,"props":884,"children":885},{"style":527},[886],{"type":67,"value":711},{"type":61,"tag":423,"props":888,"children":889},{"style":527},[890],{"type":67,"value":891}," {\n",{"type":61,"tag":423,"props":893,"children":894},{"class":425,"line":642},[895,900,905,910,914,918],{"type":61,"tag":423,"props":896,"children":897},{"style":874},[898],{"type":67,"value":899},"  const",{"type":61,"tag":423,"props":901,"children":902},{"style":533},[903],{"type":67,"value":904}," router",{"type":61,"tag":423,"props":906,"children":907},{"style":527},[908],{"type":67,"value":909}," =",{"type":61,"tag":423,"props":911,"children":912},{"style":656},[913],{"type":67,"value":799},{"type":61,"tag":423,"props":915,"children":916},{"style":675},[917],{"type":67,"value":663},{"type":61,"tag":423,"props":919,"children":920},{"style":527},[921],{"type":67,"value":668},{"type":61,"tag":423,"props":923,"children":924},{"class":425,"line":671},[925,930],{"type":61,"tag":423,"props":926,"children":927},{"style":533},[928],{"type":67,"value":929},"    routeTree",{"type":61,"tag":423,"props":931,"children":932},{"style":527},[933],{"type":67,"value":716},{"type":61,"tag":423,"props":935,"children":936},{"class":425,"line":691},[937,942,946,952],{"type":61,"tag":423,"props":938,"children":939},{"style":675},[940],{"type":67,"value":941},"    scrollRestoration",{"type":61,"tag":423,"props":943,"children":944},{"style":527},[945],{"type":67,"value":683},{"type":61,"tag":423,"props":947,"children":949},{"style":948},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[950],{"type":67,"value":951}," true",{"type":61,"tag":423,"props":953,"children":954},{"style":527},[955],{"type":67,"value":716},{"type":61,"tag":423,"props":957,"children":958},{"class":425,"line":700},[959,964],{"type":61,"tag":423,"props":960,"children":961},{"style":527},[962],{"type":67,"value":963},"  }",{"type":61,"tag":423,"props":965,"children":966},{"style":675},[967],{"type":67,"value":760},{"type":61,"tag":423,"props":969,"children":970},{"class":425,"line":719},[971],{"type":61,"tag":423,"props":972,"children":973},{"emptyLinePlaceholder":636},[974],{"type":67,"value":639},{"type":61,"tag":423,"props":976,"children":977},{"class":425,"line":736},[978,983],{"type":61,"tag":423,"props":979,"children":980},{"style":521},[981],{"type":67,"value":982},"  return",{"type":61,"tag":423,"props":984,"children":985},{"style":533},[986],{"type":67,"value":987}," router\n",{"type":61,"tag":423,"props":989,"children":990},{"class":425,"line":749},[991],{"type":61,"tag":423,"props":992,"children":993},{"style":527},[994],{"type":67,"value":995},"}\n",{"type":61,"tag":407,"props":997,"children":999},{"id":998},"_4-create-root-route-with-document-shell",[1000],{"type":67,"value":1001},"4. Create Root Route with Document Shell",{"type":61,"tag":315,"props":1003,"children":1005},{"className":769,"code":1004,"language":771,"meta":320,"style":320},"\u002F\u002F src\u002Froutes\u002F__root.tsx\nimport type { ReactNode } from 'react'\nimport {\n  Outlet,\n  createRootRoute,\n  HeadContent,\n  Scripts,\n} from '@tanstack\u002Freact-router'\n\nexport const Route = createRootRoute({\n  head: () => ({\n    meta: [\n      { charSet: 'utf-8' },\n      { name: 'viewport', content: 'width=device-width, initial-scale=1' },\n      { title: 'My App' },\n    ],\n  }),\n  component: RootComponent,\n})\n\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003Cbody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n",[1006],{"type":61,"tag":91,"props":1007,"children":1008},{"__ignoreMap":320},[1009,1017,1058,1069,1081,1093,1105,1117,1140,1147,1182,1213,1229,1266,1327,1361,1374,1391,1413,1425,1433,1454,1467,1486,1504,1523,1540,1557,1574,1591,1607,1624,1633],{"type":61,"tag":423,"props":1010,"children":1011},{"class":425,"line":426},[1012],{"type":61,"tag":423,"props":1013,"children":1014},{"style":512},[1015],{"type":67,"value":1016},"\u002F\u002F src\u002Froutes\u002F__root.tsx\n",{"type":61,"tag":423,"props":1018,"children":1019},{"class":425,"line":462},[1020,1024,1029,1033,1038,1042,1046,1050,1054],{"type":61,"tag":423,"props":1021,"children":1022},{"style":521},[1023],{"type":67,"value":524},{"type":61,"tag":423,"props":1025,"children":1026},{"style":521},[1027],{"type":67,"value":1028}," type",{"type":61,"tag":423,"props":1030,"children":1031},{"style":527},[1032],{"type":67,"value":530},{"type":61,"tag":423,"props":1034,"children":1035},{"style":533},[1036],{"type":67,"value":1037}," ReactNode",{"type":61,"tag":423,"props":1039,"children":1040},{"style":527},[1041],{"type":67,"value":541},{"type":61,"tag":423,"props":1043,"children":1044},{"style":521},[1045],{"type":67,"value":546},{"type":61,"tag":423,"props":1047,"children":1048},{"style":527},[1049],{"type":67,"value":551},{"type":61,"tag":423,"props":1051,"children":1052},{"style":436},[1053],{"type":67,"value":29},{"type":61,"tag":423,"props":1055,"children":1056},{"style":527},[1057],{"type":67,"value":560},{"type":61,"tag":423,"props":1059,"children":1060},{"class":425,"line":563},[1061,1065],{"type":61,"tag":423,"props":1062,"children":1063},{"style":521},[1064],{"type":67,"value":524},{"type":61,"tag":423,"props":1066,"children":1067},{"style":527},[1068],{"type":67,"value":891},{"type":61,"tag":423,"props":1070,"children":1071},{"class":425,"line":601},[1072,1077],{"type":61,"tag":423,"props":1073,"children":1074},{"style":533},[1075],{"type":67,"value":1076},"  Outlet",{"type":61,"tag":423,"props":1078,"children":1079},{"style":527},[1080],{"type":67,"value":716},{"type":61,"tag":423,"props":1082,"children":1083},{"class":425,"line":632},[1084,1089],{"type":61,"tag":423,"props":1085,"children":1086},{"style":533},[1087],{"type":67,"value":1088},"  createRootRoute",{"type":61,"tag":423,"props":1090,"children":1091},{"style":527},[1092],{"type":67,"value":716},{"type":61,"tag":423,"props":1094,"children":1095},{"class":425,"line":642},[1096,1101],{"type":61,"tag":423,"props":1097,"children":1098},{"style":533},[1099],{"type":67,"value":1100},"  HeadContent",{"type":61,"tag":423,"props":1102,"children":1103},{"style":527},[1104],{"type":67,"value":716},{"type":61,"tag":423,"props":1106,"children":1107},{"class":425,"line":671},[1108,1113],{"type":61,"tag":423,"props":1109,"children":1110},{"style":533},[1111],{"type":67,"value":1112},"  Scripts",{"type":61,"tag":423,"props":1114,"children":1115},{"style":527},[1116],{"type":67,"value":716},{"type":61,"tag":423,"props":1118,"children":1119},{"class":425,"line":691},[1120,1124,1128,1132,1136],{"type":61,"tag":423,"props":1121,"children":1122},{"style":527},[1123],{"type":67,"value":755},{"type":61,"tag":423,"props":1125,"children":1126},{"style":521},[1127],{"type":67,"value":546},{"type":61,"tag":423,"props":1129,"children":1130},{"style":527},[1131],{"type":67,"value":551},{"type":61,"tag":423,"props":1133,"children":1134},{"style":436},[1135],{"type":67,"value":816},{"type":61,"tag":423,"props":1137,"children":1138},{"style":527},[1139],{"type":67,"value":560},{"type":61,"tag":423,"props":1141,"children":1142},{"class":425,"line":700},[1143],{"type":61,"tag":423,"props":1144,"children":1145},{"emptyLinePlaceholder":636},[1146],{"type":67,"value":639},{"type":61,"tag":423,"props":1148,"children":1149},{"class":425,"line":719},[1150,1154,1159,1164,1169,1174,1178],{"type":61,"tag":423,"props":1151,"children":1152},{"style":521},[1153],{"type":67,"value":648},{"type":61,"tag":423,"props":1155,"children":1156},{"style":874},[1157],{"type":67,"value":1158}," const",{"type":61,"tag":423,"props":1160,"children":1161},{"style":533},[1162],{"type":67,"value":1163}," Route ",{"type":61,"tag":423,"props":1165,"children":1166},{"style":527},[1167],{"type":67,"value":1168},"=",{"type":61,"tag":423,"props":1170,"children":1171},{"style":656},[1172],{"type":67,"value":1173}," createRootRoute",{"type":61,"tag":423,"props":1175,"children":1176},{"style":533},[1177],{"type":67,"value":663},{"type":61,"tag":423,"props":1179,"children":1180},{"style":527},[1181],{"type":67,"value":668},{"type":61,"tag":423,"props":1183,"children":1184},{"class":425,"line":736},[1185,1190,1194,1199,1204,1209],{"type":61,"tag":423,"props":1186,"children":1187},{"style":656},[1188],{"type":67,"value":1189},"  head",{"type":61,"tag":423,"props":1191,"children":1192},{"style":527},[1193],{"type":67,"value":683},{"type":61,"tag":423,"props":1195,"children":1196},{"style":527},[1197],{"type":67,"value":1198}," ()",{"type":61,"tag":423,"props":1200,"children":1201},{"style":874},[1202],{"type":67,"value":1203}," =>",{"type":61,"tag":423,"props":1205,"children":1206},{"style":533},[1207],{"type":67,"value":1208}," (",{"type":61,"tag":423,"props":1210,"children":1211},{"style":527},[1212],{"type":67,"value":668},{"type":61,"tag":423,"props":1214,"children":1215},{"class":425,"line":749},[1216,1221,1225],{"type":61,"tag":423,"props":1217,"children":1218},{"style":675},[1219],{"type":67,"value":1220},"    meta",{"type":61,"tag":423,"props":1222,"children":1223},{"style":527},[1224],{"type":67,"value":683},{"type":61,"tag":423,"props":1226,"children":1227},{"style":533},[1228],{"type":67,"value":688},{"type":61,"tag":423,"props":1230,"children":1232},{"class":425,"line":1231},13,[1233,1238,1243,1247,1251,1256,1261],{"type":61,"tag":423,"props":1234,"children":1235},{"style":527},[1236],{"type":67,"value":1237},"      {",{"type":61,"tag":423,"props":1239,"children":1240},{"style":675},[1241],{"type":67,"value":1242}," charSet",{"type":61,"tag":423,"props":1244,"children":1245},{"style":527},[1246],{"type":67,"value":683},{"type":61,"tag":423,"props":1248,"children":1249},{"style":527},[1250],{"type":67,"value":551},{"type":61,"tag":423,"props":1252,"children":1253},{"style":436},[1254],{"type":67,"value":1255},"utf-8",{"type":61,"tag":423,"props":1257,"children":1258},{"style":527},[1259],{"type":67,"value":1260},"'",{"type":61,"tag":423,"props":1262,"children":1263},{"style":527},[1264],{"type":67,"value":1265}," },\n",{"type":61,"tag":423,"props":1267,"children":1269},{"class":425,"line":1268},14,[1270,1274,1279,1283,1287,1292,1296,1301,1306,1310,1314,1319,1323],{"type":61,"tag":423,"props":1271,"children":1272},{"style":527},[1273],{"type":67,"value":1237},{"type":61,"tag":423,"props":1275,"children":1276},{"style":675},[1277],{"type":67,"value":1278}," name",{"type":61,"tag":423,"props":1280,"children":1281},{"style":527},[1282],{"type":67,"value":683},{"type":61,"tag":423,"props":1284,"children":1285},{"style":527},[1286],{"type":67,"value":551},{"type":61,"tag":423,"props":1288,"children":1289},{"style":436},[1290],{"type":67,"value":1291},"viewport",{"type":61,"tag":423,"props":1293,"children":1294},{"style":527},[1295],{"type":67,"value":1260},{"type":61,"tag":423,"props":1297,"children":1298},{"style":527},[1299],{"type":67,"value":1300},",",{"type":61,"tag":423,"props":1302,"children":1303},{"style":675},[1304],{"type":67,"value":1305}," content",{"type":61,"tag":423,"props":1307,"children":1308},{"style":527},[1309],{"type":67,"value":683},{"type":61,"tag":423,"props":1311,"children":1312},{"style":527},[1313],{"type":67,"value":551},{"type":61,"tag":423,"props":1315,"children":1316},{"style":436},[1317],{"type":67,"value":1318},"width=device-width, initial-scale=1",{"type":61,"tag":423,"props":1320,"children":1321},{"style":527},[1322],{"type":67,"value":1260},{"type":61,"tag":423,"props":1324,"children":1325},{"style":527},[1326],{"type":67,"value":1265},{"type":61,"tag":423,"props":1328,"children":1330},{"class":425,"line":1329},15,[1331,1335,1340,1344,1348,1353,1357],{"type":61,"tag":423,"props":1332,"children":1333},{"style":527},[1334],{"type":67,"value":1237},{"type":61,"tag":423,"props":1336,"children":1337},{"style":675},[1338],{"type":67,"value":1339}," title",{"type":61,"tag":423,"props":1341,"children":1342},{"style":527},[1343],{"type":67,"value":683},{"type":61,"tag":423,"props":1345,"children":1346},{"style":527},[1347],{"type":67,"value":551},{"type":61,"tag":423,"props":1349,"children":1350},{"style":436},[1351],{"type":67,"value":1352},"My App",{"type":61,"tag":423,"props":1354,"children":1355},{"style":527},[1356],{"type":67,"value":1260},{"type":61,"tag":423,"props":1358,"children":1359},{"style":527},[1360],{"type":67,"value":1265},{"type":61,"tag":423,"props":1362,"children":1364},{"class":425,"line":1363},16,[1365,1370],{"type":61,"tag":423,"props":1366,"children":1367},{"style":533},[1368],{"type":67,"value":1369},"    ]",{"type":61,"tag":423,"props":1371,"children":1372},{"style":527},[1373],{"type":67,"value":716},{"type":61,"tag":423,"props":1375,"children":1377},{"class":425,"line":1376},17,[1378,1382,1387],{"type":61,"tag":423,"props":1379,"children":1380},{"style":527},[1381],{"type":67,"value":963},{"type":61,"tag":423,"props":1383,"children":1384},{"style":533},[1385],{"type":67,"value":1386},")",{"type":61,"tag":423,"props":1388,"children":1389},{"style":527},[1390],{"type":67,"value":716},{"type":61,"tag":423,"props":1392,"children":1394},{"class":425,"line":1393},18,[1395,1400,1404,1409],{"type":61,"tag":423,"props":1396,"children":1397},{"style":675},[1398],{"type":67,"value":1399},"  component",{"type":61,"tag":423,"props":1401,"children":1402},{"style":527},[1403],{"type":67,"value":683},{"type":61,"tag":423,"props":1405,"children":1406},{"style":533},[1407],{"type":67,"value":1408}," RootComponent",{"type":61,"tag":423,"props":1410,"children":1411},{"style":527},[1412],{"type":67,"value":716},{"type":61,"tag":423,"props":1414,"children":1416},{"class":425,"line":1415},19,[1417,1421],{"type":61,"tag":423,"props":1418,"children":1419},{"style":527},[1420],{"type":67,"value":755},{"type":61,"tag":423,"props":1422,"children":1423},{"style":533},[1424],{"type":67,"value":760},{"type":61,"tag":423,"props":1426,"children":1428},{"class":425,"line":1427},20,[1429],{"type":61,"tag":423,"props":1430,"children":1431},{"emptyLinePlaceholder":636},[1432],{"type":67,"value":639},{"type":61,"tag":423,"props":1434,"children":1436},{"class":425,"line":1435},21,[1437,1442,1446,1450],{"type":61,"tag":423,"props":1438,"children":1439},{"style":874},[1440],{"type":67,"value":1441},"function",{"type":61,"tag":423,"props":1443,"children":1444},{"style":656},[1445],{"type":67,"value":1408},{"type":61,"tag":423,"props":1447,"children":1448},{"style":527},[1449],{"type":67,"value":711},{"type":61,"tag":423,"props":1451,"children":1452},{"style":527},[1453],{"type":67,"value":891},{"type":61,"tag":423,"props":1455,"children":1457},{"class":425,"line":1456},22,[1458,1462],{"type":61,"tag":423,"props":1459,"children":1460},{"style":521},[1461],{"type":67,"value":982},{"type":61,"tag":423,"props":1463,"children":1464},{"style":675},[1465],{"type":67,"value":1466}," (\n",{"type":61,"tag":423,"props":1468,"children":1470},{"class":425,"line":1469},23,[1471,1476,1481],{"type":61,"tag":423,"props":1472,"children":1473},{"style":527},[1474],{"type":67,"value":1475},"    \u003C",{"type":61,"tag":423,"props":1477,"children":1478},{"style":675},[1479],{"type":67,"value":1480},"html",{"type":61,"tag":423,"props":1482,"children":1483},{"style":527},[1484],{"type":67,"value":1485},">\n",{"type":61,"tag":423,"props":1487,"children":1489},{"class":425,"line":1488},24,[1490,1495,1500],{"type":61,"tag":423,"props":1491,"children":1492},{"style":527},[1493],{"type":67,"value":1494},"      \u003C",{"type":61,"tag":423,"props":1496,"children":1497},{"style":675},[1498],{"type":67,"value":1499},"head",{"type":61,"tag":423,"props":1501,"children":1502},{"style":527},[1503],{"type":67,"value":1485},{"type":61,"tag":423,"props":1505,"children":1507},{"class":425,"line":1506},25,[1508,1513,1518],{"type":61,"tag":423,"props":1509,"children":1510},{"style":527},[1511],{"type":67,"value":1512},"        \u003C",{"type":61,"tag":423,"props":1514,"children":1515},{"style":430},[1516],{"type":67,"value":1517},"HeadContent",{"type":61,"tag":423,"props":1519,"children":1520},{"style":527},[1521],{"type":67,"value":1522}," \u002F>\n",{"type":61,"tag":423,"props":1524,"children":1526},{"class":425,"line":1525},26,[1527,1532,1536],{"type":61,"tag":423,"props":1528,"children":1529},{"style":527},[1530],{"type":67,"value":1531},"      \u003C\u002F",{"type":61,"tag":423,"props":1533,"children":1534},{"style":675},[1535],{"type":67,"value":1499},{"type":61,"tag":423,"props":1537,"children":1538},{"style":527},[1539],{"type":67,"value":1485},{"type":61,"tag":423,"props":1541,"children":1543},{"class":425,"line":1542},27,[1544,1548,1553],{"type":61,"tag":423,"props":1545,"children":1546},{"style":527},[1547],{"type":67,"value":1494},{"type":61,"tag":423,"props":1549,"children":1550},{"style":675},[1551],{"type":67,"value":1552},"body",{"type":61,"tag":423,"props":1554,"children":1555},{"style":527},[1556],{"type":67,"value":1485},{"type":61,"tag":423,"props":1558,"children":1560},{"class":425,"line":1559},28,[1561,1565,1570],{"type":61,"tag":423,"props":1562,"children":1563},{"style":527},[1564],{"type":67,"value":1512},{"type":61,"tag":423,"props":1566,"children":1567},{"style":430},[1568],{"type":67,"value":1569},"Outlet",{"type":61,"tag":423,"props":1571,"children":1572},{"style":527},[1573],{"type":67,"value":1522},{"type":61,"tag":423,"props":1575,"children":1577},{"class":425,"line":1576},29,[1578,1582,1587],{"type":61,"tag":423,"props":1579,"children":1580},{"style":527},[1581],{"type":67,"value":1512},{"type":61,"tag":423,"props":1583,"children":1584},{"style":430},[1585],{"type":67,"value":1586},"Scripts",{"type":61,"tag":423,"props":1588,"children":1589},{"style":527},[1590],{"type":67,"value":1522},{"type":61,"tag":423,"props":1592,"children":1594},{"class":425,"line":1593},30,[1595,1599,1603],{"type":61,"tag":423,"props":1596,"children":1597},{"style":527},[1598],{"type":67,"value":1531},{"type":61,"tag":423,"props":1600,"children":1601},{"style":675},[1602],{"type":67,"value":1552},{"type":61,"tag":423,"props":1604,"children":1605},{"style":527},[1606],{"type":67,"value":1485},{"type":61,"tag":423,"props":1608,"children":1610},{"class":425,"line":1609},31,[1611,1616,1620],{"type":61,"tag":423,"props":1612,"children":1613},{"style":527},[1614],{"type":67,"value":1615},"    \u003C\u002F",{"type":61,"tag":423,"props":1617,"children":1618},{"style":675},[1619],{"type":67,"value":1480},{"type":61,"tag":423,"props":1621,"children":1622},{"style":527},[1623],{"type":67,"value":1485},{"type":61,"tag":423,"props":1625,"children":1627},{"class":425,"line":1626},32,[1628],{"type":61,"tag":423,"props":1629,"children":1630},{"style":675},[1631],{"type":67,"value":1632},"  )\n",{"type":61,"tag":423,"props":1634,"children":1636},{"class":425,"line":1635},33,[1637],{"type":61,"tag":423,"props":1638,"children":1639},{"style":527},[1640],{"type":67,"value":995},{"type":61,"tag":407,"props":1642,"children":1644},{"id":1643},"_5-create-index-route-with-server-function",[1645],{"type":67,"value":1646},"5. Create Index Route with Server Function",{"type":61,"tag":315,"props":1648,"children":1650},{"className":769,"code":1649,"language":771,"meta":320,"style":320},"\u002F\u002F src\u002Froutes\u002Findex.tsx\nimport { createFileRoute } from '@tanstack\u002Freact-router'\nimport { createServerFn } from '@tanstack\u002Freact-start'\n\nconst getGreeting = createServerFn({ method: 'GET' }).handler(async () => {\n  return { message: 'Hello from the server!' }\n})\n\nexport const Route = createFileRoute('\u002F')({\n  loader: () => getGreeting(),\n  component: HomePage,\n})\n\nfunction HomePage() {\n  const data = Route.useLoaderData()\n  return \u003Ch1>{data.message}\u003C\u002Fh1>\n}\n",[1651],{"type":61,"tag":91,"props":1652,"children":1653},{"__ignoreMap":320},[1654,1662,1698,1735,1742,1832,1870,1881,1888,1937,1970,1990,2001,2008,2027,2062,2110],{"type":61,"tag":423,"props":1655,"children":1656},{"class":425,"line":426},[1657],{"type":61,"tag":423,"props":1658,"children":1659},{"style":512},[1660],{"type":67,"value":1661},"\u002F\u002F src\u002Froutes\u002Findex.tsx\n",{"type":61,"tag":423,"props":1663,"children":1664},{"class":425,"line":462},[1665,1669,1673,1678,1682,1686,1690,1694],{"type":61,"tag":423,"props":1666,"children":1667},{"style":521},[1668],{"type":67,"value":524},{"type":61,"tag":423,"props":1670,"children":1671},{"style":527},[1672],{"type":67,"value":530},{"type":61,"tag":423,"props":1674,"children":1675},{"style":533},[1676],{"type":67,"value":1677}," createFileRoute",{"type":61,"tag":423,"props":1679,"children":1680},{"style":527},[1681],{"type":67,"value":541},{"type":61,"tag":423,"props":1683,"children":1684},{"style":521},[1685],{"type":67,"value":546},{"type":61,"tag":423,"props":1687,"children":1688},{"style":527},[1689],{"type":67,"value":551},{"type":61,"tag":423,"props":1691,"children":1692},{"style":436},[1693],{"type":67,"value":816},{"type":61,"tag":423,"props":1695,"children":1696},{"style":527},[1697],{"type":67,"value":560},{"type":61,"tag":423,"props":1699,"children":1700},{"class":425,"line":563},[1701,1705,1709,1714,1718,1722,1726,1731],{"type":61,"tag":423,"props":1702,"children":1703},{"style":521},[1704],{"type":67,"value":524},{"type":61,"tag":423,"props":1706,"children":1707},{"style":527},[1708],{"type":67,"value":530},{"type":61,"tag":423,"props":1710,"children":1711},{"style":533},[1712],{"type":67,"value":1713}," createServerFn",{"type":61,"tag":423,"props":1715,"children":1716},{"style":527},[1717],{"type":67,"value":541},{"type":61,"tag":423,"props":1719,"children":1720},{"style":521},[1721],{"type":67,"value":546},{"type":61,"tag":423,"props":1723,"children":1724},{"style":527},[1725],{"type":67,"value":551},{"type":61,"tag":423,"props":1727,"children":1728},{"style":436},[1729],{"type":67,"value":1730},"@tanstack\u002Freact-start",{"type":61,"tag":423,"props":1732,"children":1733},{"style":527},[1734],{"type":67,"value":560},{"type":61,"tag":423,"props":1736,"children":1737},{"class":425,"line":601},[1738],{"type":61,"tag":423,"props":1739,"children":1740},{"emptyLinePlaceholder":636},[1741],{"type":67,"value":639},{"type":61,"tag":423,"props":1743,"children":1744},{"class":425,"line":632},[1745,1750,1755,1759,1763,1767,1772,1777,1781,1785,1790,1794,1798,1802,1806,1811,1815,1820,1824,1828],{"type":61,"tag":423,"props":1746,"children":1747},{"style":874},[1748],{"type":67,"value":1749},"const",{"type":61,"tag":423,"props":1751,"children":1752},{"style":533},[1753],{"type":67,"value":1754}," getGreeting ",{"type":61,"tag":423,"props":1756,"children":1757},{"style":527},[1758],{"type":67,"value":1168},{"type":61,"tag":423,"props":1760,"children":1761},{"style":656},[1762],{"type":67,"value":1713},{"type":61,"tag":423,"props":1764,"children":1765},{"style":533},[1766],{"type":67,"value":663},{"type":61,"tag":423,"props":1768,"children":1769},{"style":527},[1770],{"type":67,"value":1771},"{",{"type":61,"tag":423,"props":1773,"children":1774},{"style":675},[1775],{"type":67,"value":1776}," method",{"type":61,"tag":423,"props":1778,"children":1779},{"style":527},[1780],{"type":67,"value":683},{"type":61,"tag":423,"props":1782,"children":1783},{"style":527},[1784],{"type":67,"value":551},{"type":61,"tag":423,"props":1786,"children":1787},{"style":436},[1788],{"type":67,"value":1789},"GET",{"type":61,"tag":423,"props":1791,"children":1792},{"style":527},[1793],{"type":67,"value":1260},{"type":61,"tag":423,"props":1795,"children":1796},{"style":527},[1797],{"type":67,"value":541},{"type":61,"tag":423,"props":1799,"children":1800},{"style":533},[1801],{"type":67,"value":1386},{"type":61,"tag":423,"props":1803,"children":1804},{"style":527},[1805],{"type":67,"value":353},{"type":61,"tag":423,"props":1807,"children":1808},{"style":656},[1809],{"type":67,"value":1810},"handler",{"type":61,"tag":423,"props":1812,"children":1813},{"style":533},[1814],{"type":67,"value":663},{"type":61,"tag":423,"props":1816,"children":1817},{"style":874},[1818],{"type":67,"value":1819},"async",{"type":61,"tag":423,"props":1821,"children":1822},{"style":527},[1823],{"type":67,"value":1198},{"type":61,"tag":423,"props":1825,"children":1826},{"style":874},[1827],{"type":67,"value":1203},{"type":61,"tag":423,"props":1829,"children":1830},{"style":527},[1831],{"type":67,"value":891},{"type":61,"tag":423,"props":1833,"children":1834},{"class":425,"line":642},[1835,1839,1843,1848,1852,1856,1861,1865],{"type":61,"tag":423,"props":1836,"children":1837},{"style":521},[1838],{"type":67,"value":982},{"type":61,"tag":423,"props":1840,"children":1841},{"style":527},[1842],{"type":67,"value":530},{"type":61,"tag":423,"props":1844,"children":1845},{"style":675},[1846],{"type":67,"value":1847}," message",{"type":61,"tag":423,"props":1849,"children":1850},{"style":527},[1851],{"type":67,"value":683},{"type":61,"tag":423,"props":1853,"children":1854},{"style":527},[1855],{"type":67,"value":551},{"type":61,"tag":423,"props":1857,"children":1858},{"style":436},[1859],{"type":67,"value":1860},"Hello from the server!",{"type":61,"tag":423,"props":1862,"children":1863},{"style":527},[1864],{"type":67,"value":1260},{"type":61,"tag":423,"props":1866,"children":1867},{"style":527},[1868],{"type":67,"value":1869}," }\n",{"type":61,"tag":423,"props":1871,"children":1872},{"class":425,"line":671},[1873,1877],{"type":61,"tag":423,"props":1874,"children":1875},{"style":527},[1876],{"type":67,"value":755},{"type":61,"tag":423,"props":1878,"children":1879},{"style":533},[1880],{"type":67,"value":760},{"type":61,"tag":423,"props":1882,"children":1883},{"class":425,"line":691},[1884],{"type":61,"tag":423,"props":1885,"children":1886},{"emptyLinePlaceholder":636},[1887],{"type":67,"value":639},{"type":61,"tag":423,"props":1889,"children":1890},{"class":425,"line":700},[1891,1895,1899,1903,1907,1911,1915,1919,1924,1928,1933],{"type":61,"tag":423,"props":1892,"children":1893},{"style":521},[1894],{"type":67,"value":648},{"type":61,"tag":423,"props":1896,"children":1897},{"style":874},[1898],{"type":67,"value":1158},{"type":61,"tag":423,"props":1900,"children":1901},{"style":533},[1902],{"type":67,"value":1163},{"type":61,"tag":423,"props":1904,"children":1905},{"style":527},[1906],{"type":67,"value":1168},{"type":61,"tag":423,"props":1908,"children":1909},{"style":656},[1910],{"type":67,"value":1677},{"type":61,"tag":423,"props":1912,"children":1913},{"style":533},[1914],{"type":67,"value":663},{"type":61,"tag":423,"props":1916,"children":1917},{"style":527},[1918],{"type":67,"value":1260},{"type":61,"tag":423,"props":1920,"children":1921},{"style":436},[1922],{"type":67,"value":1923},"\u002F",{"type":61,"tag":423,"props":1925,"children":1926},{"style":527},[1927],{"type":67,"value":1260},{"type":61,"tag":423,"props":1929,"children":1930},{"style":533},[1931],{"type":67,"value":1932},")(",{"type":61,"tag":423,"props":1934,"children":1935},{"style":527},[1936],{"type":67,"value":668},{"type":61,"tag":423,"props":1938,"children":1939},{"class":425,"line":719},[1940,1945,1949,1953,1957,1962,1966],{"type":61,"tag":423,"props":1941,"children":1942},{"style":656},[1943],{"type":67,"value":1944},"  loader",{"type":61,"tag":423,"props":1946,"children":1947},{"style":527},[1948],{"type":67,"value":683},{"type":61,"tag":423,"props":1950,"children":1951},{"style":527},[1952],{"type":67,"value":1198},{"type":61,"tag":423,"props":1954,"children":1955},{"style":874},[1956],{"type":67,"value":1203},{"type":61,"tag":423,"props":1958,"children":1959},{"style":656},[1960],{"type":67,"value":1961}," getGreeting",{"type":61,"tag":423,"props":1963,"children":1964},{"style":533},[1965],{"type":67,"value":711},{"type":61,"tag":423,"props":1967,"children":1968},{"style":527},[1969],{"type":67,"value":716},{"type":61,"tag":423,"props":1971,"children":1972},{"class":425,"line":736},[1973,1977,1981,1986],{"type":61,"tag":423,"props":1974,"children":1975},{"style":675},[1976],{"type":67,"value":1399},{"type":61,"tag":423,"props":1978,"children":1979},{"style":527},[1980],{"type":67,"value":683},{"type":61,"tag":423,"props":1982,"children":1983},{"style":533},[1984],{"type":67,"value":1985}," HomePage",{"type":61,"tag":423,"props":1987,"children":1988},{"style":527},[1989],{"type":67,"value":716},{"type":61,"tag":423,"props":1991,"children":1992},{"class":425,"line":749},[1993,1997],{"type":61,"tag":423,"props":1994,"children":1995},{"style":527},[1996],{"type":67,"value":755},{"type":61,"tag":423,"props":1998,"children":1999},{"style":533},[2000],{"type":67,"value":760},{"type":61,"tag":423,"props":2002,"children":2003},{"class":425,"line":1231},[2004],{"type":61,"tag":423,"props":2005,"children":2006},{"emptyLinePlaceholder":636},[2007],{"type":67,"value":639},{"type":61,"tag":423,"props":2009,"children":2010},{"class":425,"line":1268},[2011,2015,2019,2023],{"type":61,"tag":423,"props":2012,"children":2013},{"style":874},[2014],{"type":67,"value":1441},{"type":61,"tag":423,"props":2016,"children":2017},{"style":656},[2018],{"type":67,"value":1985},{"type":61,"tag":423,"props":2020,"children":2021},{"style":527},[2022],{"type":67,"value":711},{"type":61,"tag":423,"props":2024,"children":2025},{"style":527},[2026],{"type":67,"value":891},{"type":61,"tag":423,"props":2028,"children":2029},{"class":425,"line":1329},[2030,2034,2039,2043,2048,2052,2057],{"type":61,"tag":423,"props":2031,"children":2032},{"style":874},[2033],{"type":67,"value":899},{"type":61,"tag":423,"props":2035,"children":2036},{"style":533},[2037],{"type":67,"value":2038}," data",{"type":61,"tag":423,"props":2040,"children":2041},{"style":527},[2042],{"type":67,"value":909},{"type":61,"tag":423,"props":2044,"children":2045},{"style":533},[2046],{"type":67,"value":2047}," Route",{"type":61,"tag":423,"props":2049,"children":2050},{"style":527},[2051],{"type":67,"value":353},{"type":61,"tag":423,"props":2053,"children":2054},{"style":656},[2055],{"type":67,"value":2056},"useLoaderData",{"type":61,"tag":423,"props":2058,"children":2059},{"style":675},[2060],{"type":67,"value":2061},"()\n",{"type":61,"tag":423,"props":2063,"children":2064},{"class":425,"line":1363},[2065,2069,2074,2078,2083,2088,2092,2097,2102,2106],{"type":61,"tag":423,"props":2066,"children":2067},{"style":521},[2068],{"type":67,"value":982},{"type":61,"tag":423,"props":2070,"children":2071},{"style":527},[2072],{"type":67,"value":2073}," \u003C",{"type":61,"tag":423,"props":2075,"children":2076},{"style":675},[2077],{"type":67,"value":62},{"type":61,"tag":423,"props":2079,"children":2080},{"style":527},[2081],{"type":67,"value":2082},">{",{"type":61,"tag":423,"props":2084,"children":2085},{"style":533},[2086],{"type":67,"value":2087},"data",{"type":61,"tag":423,"props":2089,"children":2090},{"style":527},[2091],{"type":67,"value":353},{"type":61,"tag":423,"props":2093,"children":2094},{"style":533},[2095],{"type":67,"value":2096},"message",{"type":61,"tag":423,"props":2098,"children":2099},{"style":527},[2100],{"type":67,"value":2101},"}\u003C\u002F",{"type":61,"tag":423,"props":2103,"children":2104},{"style":675},[2105],{"type":67,"value":62},{"type":61,"tag":423,"props":2107,"children":2108},{"style":527},[2109],{"type":67,"value":1485},{"type":61,"tag":423,"props":2111,"children":2112},{"class":425,"line":1376},[2113],{"type":61,"tag":423,"props":2114,"children":2115},{"style":527},[2116],{"type":67,"value":995},{"type":61,"tag":171,"props":2118,"children":2120},{"id":2119},"common-mistakes",[2121],{"type":67,"value":2122},"Common Mistakes",{"type":61,"tag":407,"props":2124,"children":2126},{"id":2125},"_1-critical-react-plugin-before-start-plugin-in-vite-config",[2127],{"type":67,"value":2128},"1. CRITICAL: React plugin before Start plugin in Vite config",{"type":61,"tag":315,"props":2130,"children":2132},{"className":500,"code":2131,"language":502,"meta":320,"style":320},"\u002F\u002F WRONG — route generation and server function compilation fail\nplugins: [react(), tanstackStart()]\n\n\u002F\u002F CORRECT — Start plugin must come first\nplugins: [tanstackStart(), react()]\n",[2133],{"type":61,"tag":91,"props":2134,"children":2135},{"__ignoreMap":320},[2136,2144,2182,2189,2197],{"type":61,"tag":423,"props":2137,"children":2138},{"class":425,"line":426},[2139],{"type":61,"tag":423,"props":2140,"children":2141},{"style":512},[2142],{"type":67,"value":2143},"\u002F\u002F WRONG — route generation and server function compilation fail\n",{"type":61,"tag":423,"props":2145,"children":2146},{"class":425,"line":462},[2147,2152,2156,2161,2165,2169,2173,2177],{"type":61,"tag":423,"props":2148,"children":2149},{"style":430},[2150],{"type":67,"value":2151},"plugins",{"type":61,"tag":423,"props":2153,"children":2154},{"style":527},[2155],{"type":67,"value":683},{"type":61,"tag":423,"props":2157,"children":2158},{"style":533},[2159],{"type":67,"value":2160}," [",{"type":61,"tag":423,"props":2162,"children":2163},{"style":656},[2164],{"type":67,"value":29},{"type":61,"tag":423,"props":2166,"children":2167},{"style":533},[2168],{"type":67,"value":711},{"type":61,"tag":423,"props":2170,"children":2171},{"style":527},[2172],{"type":67,"value":1300},{"type":61,"tag":423,"props":2174,"children":2175},{"style":656},[2176],{"type":67,"value":577},{"type":61,"tag":423,"props":2178,"children":2179},{"style":533},[2180],{"type":67,"value":2181},"()]\n",{"type":61,"tag":423,"props":2183,"children":2184},{"class":425,"line":563},[2185],{"type":61,"tag":423,"props":2186,"children":2187},{"emptyLinePlaceholder":636},[2188],{"type":67,"value":639},{"type":61,"tag":423,"props":2190,"children":2191},{"class":425,"line":601},[2192],{"type":61,"tag":423,"props":2193,"children":2194},{"style":512},[2195],{"type":67,"value":2196},"\u002F\u002F CORRECT — Start plugin must come first\n",{"type":61,"tag":423,"props":2198,"children":2199},{"class":425,"line":632},[2200,2204,2208,2212,2217,2221,2225,2229],{"type":61,"tag":423,"props":2201,"children":2202},{"style":430},[2203],{"type":67,"value":2151},{"type":61,"tag":423,"props":2205,"children":2206},{"style":527},[2207],{"type":67,"value":683},{"type":61,"tag":423,"props":2209,"children":2210},{"style":533},[2211],{"type":67,"value":2160},{"type":61,"tag":423,"props":2213,"children":2214},{"style":656},[2215],{"type":67,"value":2216},"tanstackStart",{"type":61,"tag":423,"props":2218,"children":2219},{"style":533},[2220],{"type":67,"value":711},{"type":61,"tag":423,"props":2222,"children":2223},{"style":527},[2224],{"type":67,"value":1300},{"type":61,"tag":423,"props":2226,"children":2227},{"style":656},[2228],{"type":67,"value":454},{"type":61,"tag":423,"props":2230,"children":2231},{"style":533},[2232],{"type":67,"value":2181},{"type":61,"tag":407,"props":2234,"children":2236},{"id":2235},"_2-high-enabling-verbatimmodulesyntax-in-tsconfig",[2237],{"type":67,"value":2238},"2. HIGH: Enabling verbatimModuleSyntax in tsconfig",{"type":61,"tag":70,"props":2240,"children":2241},{},[2242,2248],{"type":61,"tag":91,"props":2243,"children":2245},{"className":2244},[],[2246],{"type":67,"value":2247},"verbatimModuleSyntax",{"type":67,"value":2249}," causes server bundles to leak into client bundles. Keep it disabled.",{"type":61,"tag":407,"props":2251,"children":2253},{"id":2252},"_3-high-missing-scripts-component-in-root-route",[2254],{"type":67,"value":2255},"3. HIGH: Missing Scripts component in root route",{"type":61,"tag":70,"props":2257,"children":2258},{},[2259,2261,2267,2269,2275],{"type":67,"value":2260},"The ",{"type":61,"tag":91,"props":2262,"children":2264},{"className":2263},[],[2265],{"type":67,"value":2266},"\u003CScripts \u002F>",{"type":67,"value":2268}," component must be rendered in the ",{"type":61,"tag":91,"props":2270,"children":2272},{"className":2271},[],[2273],{"type":67,"value":2274},"\u003Cbody>",{"type":67,"value":2276}," of the root route. Without it, client-side JavaScript does not load and hydration fails.",{"type":61,"tag":315,"props":2278,"children":2280},{"className":769,"code":2279,"language":771,"meta":320,"style":320},"\u002F\u002F WRONG — no Scripts\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003Cbody>\n        \u003COutlet \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n\n\u002F\u002F CORRECT — Scripts in body\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003Cbody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n",[2281],{"type":61,"tag":91,"props":2282,"children":2283},{"__ignoreMap":320},[2284,2292,2311,2322,2337,2352,2367,2382,2397,2412,2427,2442,2449,2456,2463,2471,2490,2501,2516,2531,2546,2561,2576,2591,2606,2621,2636,2643],{"type":61,"tag":423,"props":2285,"children":2286},{"class":425,"line":426},[2287],{"type":61,"tag":423,"props":2288,"children":2289},{"style":512},[2290],{"type":67,"value":2291},"\u002F\u002F WRONG — no Scripts\n",{"type":61,"tag":423,"props":2293,"children":2294},{"class":425,"line":462},[2295,2299,2303,2307],{"type":61,"tag":423,"props":2296,"children":2297},{"style":874},[2298],{"type":67,"value":1441},{"type":61,"tag":423,"props":2300,"children":2301},{"style":656},[2302],{"type":67,"value":1408},{"type":61,"tag":423,"props":2304,"children":2305},{"style":527},[2306],{"type":67,"value":711},{"type":61,"tag":423,"props":2308,"children":2309},{"style":527},[2310],{"type":67,"value":891},{"type":61,"tag":423,"props":2312,"children":2313},{"class":425,"line":563},[2314,2318],{"type":61,"tag":423,"props":2315,"children":2316},{"style":521},[2317],{"type":67,"value":982},{"type":61,"tag":423,"props":2319,"children":2320},{"style":675},[2321],{"type":67,"value":1466},{"type":61,"tag":423,"props":2323,"children":2324},{"class":425,"line":601},[2325,2329,2333],{"type":61,"tag":423,"props":2326,"children":2327},{"style":527},[2328],{"type":67,"value":1475},{"type":61,"tag":423,"props":2330,"children":2331},{"style":675},[2332],{"type":67,"value":1480},{"type":61,"tag":423,"props":2334,"children":2335},{"style":527},[2336],{"type":67,"value":1485},{"type":61,"tag":423,"props":2338,"children":2339},{"class":425,"line":632},[2340,2344,2348],{"type":61,"tag":423,"props":2341,"children":2342},{"style":527},[2343],{"type":67,"value":1494},{"type":61,"tag":423,"props":2345,"children":2346},{"style":675},[2347],{"type":67,"value":1499},{"type":61,"tag":423,"props":2349,"children":2350},{"style":527},[2351],{"type":67,"value":1485},{"type":61,"tag":423,"props":2353,"children":2354},{"class":425,"line":642},[2355,2359,2363],{"type":61,"tag":423,"props":2356,"children":2357},{"style":527},[2358],{"type":67,"value":1512},{"type":61,"tag":423,"props":2360,"children":2361},{"style":430},[2362],{"type":67,"value":1517},{"type":61,"tag":423,"props":2364,"children":2365},{"style":527},[2366],{"type":67,"value":1522},{"type":61,"tag":423,"props":2368,"children":2369},{"class":425,"line":671},[2370,2374,2378],{"type":61,"tag":423,"props":2371,"children":2372},{"style":527},[2373],{"type":67,"value":1531},{"type":61,"tag":423,"props":2375,"children":2376},{"style":675},[2377],{"type":67,"value":1499},{"type":61,"tag":423,"props":2379,"children":2380},{"style":527},[2381],{"type":67,"value":1485},{"type":61,"tag":423,"props":2383,"children":2384},{"class":425,"line":691},[2385,2389,2393],{"type":61,"tag":423,"props":2386,"children":2387},{"style":527},[2388],{"type":67,"value":1494},{"type":61,"tag":423,"props":2390,"children":2391},{"style":675},[2392],{"type":67,"value":1552},{"type":61,"tag":423,"props":2394,"children":2395},{"style":527},[2396],{"type":67,"value":1485},{"type":61,"tag":423,"props":2398,"children":2399},{"class":425,"line":700},[2400,2404,2408],{"type":61,"tag":423,"props":2401,"children":2402},{"style":527},[2403],{"type":67,"value":1512},{"type":61,"tag":423,"props":2405,"children":2406},{"style":430},[2407],{"type":67,"value":1569},{"type":61,"tag":423,"props":2409,"children":2410},{"style":527},[2411],{"type":67,"value":1522},{"type":61,"tag":423,"props":2413,"children":2414},{"class":425,"line":719},[2415,2419,2423],{"type":61,"tag":423,"props":2416,"children":2417},{"style":527},[2418],{"type":67,"value":1531},{"type":61,"tag":423,"props":2420,"children":2421},{"style":675},[2422],{"type":67,"value":1552},{"type":61,"tag":423,"props":2424,"children":2425},{"style":527},[2426],{"type":67,"value":1485},{"type":61,"tag":423,"props":2428,"children":2429},{"class":425,"line":736},[2430,2434,2438],{"type":61,"tag":423,"props":2431,"children":2432},{"style":527},[2433],{"type":67,"value":1615},{"type":61,"tag":423,"props":2435,"children":2436},{"style":675},[2437],{"type":67,"value":1480},{"type":61,"tag":423,"props":2439,"children":2440},{"style":527},[2441],{"type":67,"value":1485},{"type":61,"tag":423,"props":2443,"children":2444},{"class":425,"line":749},[2445],{"type":61,"tag":423,"props":2446,"children":2447},{"style":675},[2448],{"type":67,"value":1632},{"type":61,"tag":423,"props":2450,"children":2451},{"class":425,"line":1231},[2452],{"type":61,"tag":423,"props":2453,"children":2454},{"style":527},[2455],{"type":67,"value":995},{"type":61,"tag":423,"props":2457,"children":2458},{"class":425,"line":1268},[2459],{"type":61,"tag":423,"props":2460,"children":2461},{"emptyLinePlaceholder":636},[2462],{"type":67,"value":639},{"type":61,"tag":423,"props":2464,"children":2465},{"class":425,"line":1329},[2466],{"type":61,"tag":423,"props":2467,"children":2468},{"style":512},[2469],{"type":67,"value":2470},"\u002F\u002F CORRECT — Scripts in body\n",{"type":61,"tag":423,"props":2472,"children":2473},{"class":425,"line":1363},[2474,2478,2482,2486],{"type":61,"tag":423,"props":2475,"children":2476},{"style":874},[2477],{"type":67,"value":1441},{"type":61,"tag":423,"props":2479,"children":2480},{"style":656},[2481],{"type":67,"value":1408},{"type":61,"tag":423,"props":2483,"children":2484},{"style":527},[2485],{"type":67,"value":711},{"type":61,"tag":423,"props":2487,"children":2488},{"style":527},[2489],{"type":67,"value":891},{"type":61,"tag":423,"props":2491,"children":2492},{"class":425,"line":1376},[2493,2497],{"type":61,"tag":423,"props":2494,"children":2495},{"style":521},[2496],{"type":67,"value":982},{"type":61,"tag":423,"props":2498,"children":2499},{"style":675},[2500],{"type":67,"value":1466},{"type":61,"tag":423,"props":2502,"children":2503},{"class":425,"line":1393},[2504,2508,2512],{"type":61,"tag":423,"props":2505,"children":2506},{"style":527},[2507],{"type":67,"value":1475},{"type":61,"tag":423,"props":2509,"children":2510},{"style":675},[2511],{"type":67,"value":1480},{"type":61,"tag":423,"props":2513,"children":2514},{"style":527},[2515],{"type":67,"value":1485},{"type":61,"tag":423,"props":2517,"children":2518},{"class":425,"line":1415},[2519,2523,2527],{"type":61,"tag":423,"props":2520,"children":2521},{"style":527},[2522],{"type":67,"value":1494},{"type":61,"tag":423,"props":2524,"children":2525},{"style":675},[2526],{"type":67,"value":1499},{"type":61,"tag":423,"props":2528,"children":2529},{"style":527},[2530],{"type":67,"value":1485},{"type":61,"tag":423,"props":2532,"children":2533},{"class":425,"line":1427},[2534,2538,2542],{"type":61,"tag":423,"props":2535,"children":2536},{"style":527},[2537],{"type":67,"value":1512},{"type":61,"tag":423,"props":2539,"children":2540},{"style":430},[2541],{"type":67,"value":1517},{"type":61,"tag":423,"props":2543,"children":2544},{"style":527},[2545],{"type":67,"value":1522},{"type":61,"tag":423,"props":2547,"children":2548},{"class":425,"line":1435},[2549,2553,2557],{"type":61,"tag":423,"props":2550,"children":2551},{"style":527},[2552],{"type":67,"value":1531},{"type":61,"tag":423,"props":2554,"children":2555},{"style":675},[2556],{"type":67,"value":1499},{"type":61,"tag":423,"props":2558,"children":2559},{"style":527},[2560],{"type":67,"value":1485},{"type":61,"tag":423,"props":2562,"children":2563},{"class":425,"line":1456},[2564,2568,2572],{"type":61,"tag":423,"props":2565,"children":2566},{"style":527},[2567],{"type":67,"value":1494},{"type":61,"tag":423,"props":2569,"children":2570},{"style":675},[2571],{"type":67,"value":1552},{"type":61,"tag":423,"props":2573,"children":2574},{"style":527},[2575],{"type":67,"value":1485},{"type":61,"tag":423,"props":2577,"children":2578},{"class":425,"line":1469},[2579,2583,2587],{"type":61,"tag":423,"props":2580,"children":2581},{"style":527},[2582],{"type":67,"value":1512},{"type":61,"tag":423,"props":2584,"children":2585},{"style":430},[2586],{"type":67,"value":1569},{"type":61,"tag":423,"props":2588,"children":2589},{"style":527},[2590],{"type":67,"value":1522},{"type":61,"tag":423,"props":2592,"children":2593},{"class":425,"line":1488},[2594,2598,2602],{"type":61,"tag":423,"props":2595,"children":2596},{"style":527},[2597],{"type":67,"value":1512},{"type":61,"tag":423,"props":2599,"children":2600},{"style":430},[2601],{"type":67,"value":1586},{"type":61,"tag":423,"props":2603,"children":2604},{"style":527},[2605],{"type":67,"value":1522},{"type":61,"tag":423,"props":2607,"children":2608},{"class":425,"line":1506},[2609,2613,2617],{"type":61,"tag":423,"props":2610,"children":2611},{"style":527},[2612],{"type":67,"value":1531},{"type":61,"tag":423,"props":2614,"children":2615},{"style":675},[2616],{"type":67,"value":1552},{"type":61,"tag":423,"props":2618,"children":2619},{"style":527},[2620],{"type":67,"value":1485},{"type":61,"tag":423,"props":2622,"children":2623},{"class":425,"line":1525},[2624,2628,2632],{"type":61,"tag":423,"props":2625,"children":2626},{"style":527},[2627],{"type":67,"value":1615},{"type":61,"tag":423,"props":2629,"children":2630},{"style":675},[2631],{"type":67,"value":1480},{"type":61,"tag":423,"props":2633,"children":2634},{"style":527},[2635],{"type":67,"value":1485},{"type":61,"tag":423,"props":2637,"children":2638},{"class":425,"line":1542},[2639],{"type":61,"tag":423,"props":2640,"children":2641},{"style":675},[2642],{"type":67,"value":1632},{"type":61,"tag":423,"props":2644,"children":2645},{"class":425,"line":1559},[2646],{"type":61,"tag":423,"props":2647,"children":2648},{"style":527},[2649],{"type":67,"value":995},{"type":61,"tag":171,"props":2651,"children":2653},{"id":2652},"version-note",[2654],{"type":67,"value":2655},"Version Note",{"type":61,"tag":70,"props":2657,"children":2658},{},[2659,2661,2667],{"type":67,"value":2660},"This skill targets ",{"type":61,"tag":91,"props":2662,"children":2664},{"className":2663},[],[2665],{"type":67,"value":2666},"@tanstack\u002Fstart-client-core",{"type":67,"value":2668}," v1.170.14.",{"type":61,"tag":2670,"props":2671,"children":2672},"style",{},[2673],{"type":67,"value":2674},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2676,"total":1593},[2677,2696,2710,2726,2739,2758,2767],{"slug":2678,"name":2678,"fn":2679,"description":2680,"org":2681,"tags":2682,"stars":20,"repoUrl":21,"updatedAt":2695},"auth-and-guards","implement route protection in TanStack Router","Route protection with beforeLoad, redirect()\u002Fthrow redirect(), isRedirect helper, authenticated layout routes (_authenticated), non-redirect auth (inline login), RBAC with roles and permissions, auth provider integration (Auth0, Clerk, Supabase), router context for auth state.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2683,2686,2689,2691,2692],{"name":2684,"slug":2685,"type":15},"Auth","auth",{"name":2687,"slug":2688,"type":15},"Frontend","frontend",{"name":2690,"slug":32,"type":15},"Routing",{"name":9,"slug":8,"type":15},{"name":2693,"slug":2694,"type":15},"TanStack Router","tanstack-router","2026-07-30T05:27:07.639032",{"slug":159,"name":159,"fn":2697,"description":2698,"org":2699,"tags":2700,"stars":20,"repoUrl":21,"updatedAt":2709},"implement server-side authentication primitives","Server-side authentication primitives for TanStack Start: session cookies (HttpOnly, Secure, SameSite, __Host- prefix), session read\u002Fissue\u002Fdestroy via createServerFn and middleware, OAuth authorization-code flow with state and PKCE, password-reset enumeration defense, CSRF for non-GET RPCs, rate limiting auth endpoints, session rotation on privilege change. Pairs with router-core\u002Fauth-and-guards for the routing side.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2701,2702,2705,2708],{"name":2684,"slug":2685,"type":15},{"name":2703,"slug":2704,"type":15},"OAuth","oauth",{"name":2706,"slug":2707,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-07-30T05:26:59.504396",{"slug":2711,"name":2711,"fn":2712,"description":2713,"org":2714,"tags":2715,"stars":20,"repoUrl":21,"updatedAt":2725},"code-splitting","configure code splitting in TanStack Router","Automatic code splitting (autoCodeSplitting), .lazy.tsx convention, createLazyFileRoute, createLazyRoute, lazyRouteComponent, getRouteApi for typed hooks in split files, codeSplitGroupings per-route override, splitBehavior programmatic config, critical vs non-critical properties.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2716,2719,2720,2723,2724],{"name":2717,"slug":2718,"type":15},"Engineering","engineering",{"name":2687,"slug":2688,"type":15},{"name":2721,"slug":2722,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},{"name":2693,"slug":2694,"type":15},"2026-07-30T05:27:11.494406",{"slug":2727,"name":2727,"fn":2728,"description":2729,"org":2730,"tags":2731,"stars":20,"repoUrl":21,"updatedAt":2738},"data-loading","manage data loading in TanStack Router","Route loader option, loaderDeps for cache keys, staleTime\u002FgcTime\u002F defaultPreloadStaleTime SWR caching, pendingComponent\u002FpendingMs\u002F pendingMinMs, errorComponent\u002FonError\u002FonCatch, beforeLoad, router context and createRootRouteWithContext DI pattern, router.invalidate, Await component, deferred data loading with unawaited promises.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2732,2735,2736,2737],{"name":2733,"slug":2734,"type":15},"Caching","caching",{"name":2721,"slug":2722,"type":15},{"name":9,"slug":8,"type":15},{"name":2693,"slug":2694,"type":15},"2026-07-30T05:26:54.487943",{"slug":2740,"name":2740,"fn":2741,"description":2742,"org":2743,"tags":2744,"stars":20,"repoUrl":21,"updatedAt":2757},"deployment","deploy TanStack Start applications","Deploy to Cloudflare Workers, Netlify, Vercel, Node.js\u002FDocker, Bun, Railway. Selective SSR (ssr option per route), SPA mode, static prerendering, ISR with Cache-Control headers, SEO and head management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2745,2748,2750,2753,2754],{"name":2746,"slug":2747,"type":15},"Cloudflare","cloudflare",{"name":2749,"slug":2740,"type":15},"Deployment",{"name":2751,"slug":2752,"type":15},"Netlify","netlify",{"name":9,"slug":8,"type":15},{"name":2755,"slug":2756,"type":15},"Vercel","vercel","2026-07-30T05:26:50.509927",{"slug":2759,"name":2759,"fn":2760,"description":2761,"org":2762,"tags":2763,"stars":20,"repoUrl":21,"updatedAt":2766},"execution-model","manage isomorphic execution models","Isomorphic-by-default principle, environment boundary functions (createServerFn, createServerOnlyFn, createClientOnlyFn, createIsomorphicFn), ClientOnly component, useHydrated hook, import protection, dead code elimination, environment variable safety (VITE_ prefix, process.env).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2764,2765],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:27:04.558441",{"slug":2768,"name":2768,"fn":2769,"description":2770,"org":2771,"tags":2772,"stars":20,"repoUrl":21,"updatedAt":2780},"middleware","implement TanStack Router middleware","createMiddleware, request middleware (.server only), server function middleware (.client + .server), context passing via next({ context }), sendContext for client-server transfer, global middleware via createStart in src\u002Fstart.ts, middleware factories, method order enforcement, fetch override precedence.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2773,2776,2777,2779],{"name":2774,"slug":2775,"type":15},"Backend","backend",{"name":2687,"slug":2688,"type":15},{"name":2778,"slug":2768,"type":15},"Middleware",{"name":9,"slug":8,"type":15},"2026-07-30T05:26:58.546019",{"items":2782,"total":2919},[2783,2797,2809,2821,2834,2846,2856,2866,2879,2889,2900,2910],{"slug":2784,"name":2784,"fn":2785,"description":2786,"org":2787,"tags":2788,"stars":2794,"repoUrl":2795,"updatedAt":2796},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2789,2792,2793],{"name":2790,"slug":2791,"type":15},"Data Analysis","data-analysis",{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":2798,"name":2798,"fn":2799,"description":2800,"org":2801,"tags":2802,"stars":2794,"repoUrl":2795,"updatedAt":2808},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2803,2806,2807],{"name":2804,"slug":2805,"type":15},"Debugging","debugging",{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":2810,"name":2810,"fn":2811,"description":2812,"org":2813,"tags":2814,"stars":2794,"repoUrl":2795,"updatedAt":2820},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2815,2816,2817],{"name":2790,"slug":2791,"type":15},{"name":9,"slug":8,"type":15},{"name":2818,"slug":2819,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":2822,"name":2822,"fn":2823,"description":2824,"org":2825,"tags":2826,"stars":2794,"repoUrl":2795,"updatedAt":2833},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2827,2830,2831,2832],{"name":2828,"slug":2829,"type":15},"Data Pipeline","data-pipeline",{"name":2687,"slug":2688,"type":15},{"name":2721,"slug":2722,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":2835,"name":2835,"fn":2836,"description":2837,"org":2838,"tags":2839,"stars":2794,"repoUrl":2795,"updatedAt":2845},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2840,2843,2844],{"name":2841,"slug":2842,"type":15},"Data Visualization","data-visualization",{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":2847,"name":2847,"fn":2848,"description":2849,"org":2850,"tags":2851,"stars":2794,"repoUrl":2795,"updatedAt":2855},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2852,2853,2854],{"name":2790,"slug":2791,"type":15},{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":2857,"name":2857,"fn":2858,"description":2859,"org":2860,"tags":2861,"stars":2794,"repoUrl":2795,"updatedAt":2865},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2862,2863,2864],{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},{"name":2818,"slug":2819,"type":15},"2026-07-30T05:26:03.37801",{"slug":2867,"name":2867,"fn":2868,"description":2869,"org":2870,"tags":2871,"stars":2794,"repoUrl":2795,"updatedAt":2878},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2872,2875,2876,2877],{"name":2873,"slug":2874,"type":15},"CSS","css",{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},{"name":2818,"slug":2819,"type":15},"2026-07-30T05:25:55.377366",{"slug":2880,"name":2880,"fn":2881,"description":2882,"org":2883,"tags":2884,"stars":2794,"repoUrl":2795,"updatedAt":2888},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2885,2886,2887],{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},{"name":2818,"slug":2819,"type":15},"2026-07-30T05:25:51.400011",{"slug":2890,"name":2890,"fn":2891,"description":2892,"org":2893,"tags":2894,"stars":2794,"repoUrl":2795,"updatedAt":2899},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2895,2896,2897,2898],{"name":2873,"slug":2874,"type":15},{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},{"name":2818,"slug":2819,"type":15},"2026-07-30T05:25:48.703799",{"slug":2901,"name":2901,"fn":2902,"description":2903,"org":2904,"tags":2905,"stars":2794,"repoUrl":2795,"updatedAt":2909},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2906,2907,2908],{"name":2687,"slug":2688,"type":15},{"name":9,"slug":8,"type":15},{"name":2818,"slug":2819,"type":15},"2026-07-30T05:25:47.367943",{"slug":50,"name":50,"fn":2911,"description":2912,"org":2913,"tags":2914,"stars":2794,"repoUrl":2795,"updatedAt":2918},"build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2915,2916,2917],{"name":2790,"slug":2791,"type":15},{"name":2687,"slug":2688,"type":15},{"name":2818,"slug":2819,"type":15},"2026-07-30T05:25:52.366295",125]