2026-08-06 08:36:47 +02:00
|
|
|
# Routes
|
|
|
|
|
|
|
|
|
|
TanStack Start uses **file-based routing**. Every `.tsx` file in this directory
|
|
|
|
|
defines a route. Do **not** create `src/pages/`, `src/routes/_app/index.tsx`, or
|
|
|
|
|
`app/layout.tsx` — those are Next.js / Remix conventions. The only root layout
|
|
|
|
|
is `src/routes/__root.tsx`.
|
|
|
|
|
|
|
|
|
|
## Conventions
|
|
|
|
|
|
2026-09-01 13:38:56 +02:00
|
|
|
| File | URL |
|
|
|
|
|
| ------------------------ | ------------------------------------------------------- |
|
|
|
|
|
| `index.tsx` | `/` |
|
|
|
|
|
| `about.tsx` | `/about` |
|
|
|
|
|
| `users/index.tsx` | `/users` |
|
|
|
|
|
| `users/$id.tsx` | `/users/:id` (dynamic — bare `$`, no curly braces) |
|
|
|
|
|
| `posts/{-$category}.tsx` | `/posts/:category?` (optional segment) |
|
|
|
|
|
| `files/$.tsx` | `/files/*` (splat — read via `_splat` param, never `*`) |
|
|
|
|
|
| `_layout.tsx` | layout route (renders children via `<Outlet />`) |
|
|
|
|
|
| `__root.tsx` | app shell — wraps every page; preserve `<Outlet />` |
|
2026-08-06 08:36:47 +02:00
|
|
|
|
|
|
|
|
`routeTree.gen.ts` is auto-generated. Don't edit it by hand.
|