File: basic-ssr-file-based.md | Updated: 11/15/2025
Search...
+ K
Auto
Docs Examples GitHub Contributors
Docs Examples GitHub Contributors
Docs Examples GitHub Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Maintainers Partners Support Learn StatsBETA Discord Merch Blog GitHub Ethos Brand Guide
Documentation
Framework
Solid
Version
Latest
Search...
+ K
Menu
Getting Started
Installation Guides
Routing
Guides
API
ESLint
Router Examples
Framework
Solid
Version
Latest
Menu
Getting Started
Installation Guides
Routing
Guides
API
ESLint
Router Examples
Solid Example: Basic Ssr File Based
===============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
Code ExplorerCode
Interactive SandboxSandbox
.vscode
public
src
routes
posts
__root.tsx
error.tsx
index.tsx
entry-client.tsx
entry-server.tsx
fetch-polyfill.js
routeTree.gen.ts
router.tsx
routerContext.tsx
.gitignore
README.md
package.json
server.js
tsconfig.json
vite.config.ts
tsx
import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
import {
Link,
Outlet,
createRootRouteWithContext,
} from '@tanstack/solid-router'
import type { RouterContext } from '../routerContext'
export const Route = createRootRouteWithContext<RouterContext>()({
head: () => ({
links: [{ rel: 'icon', href: '/images/favicon.ico' }],
meta: [\
{\
title: 'TanStack Router SSR Basic File Based Streaming',\
},\
{\
charSet: 'UTF-8',\
},\
{\
name: 'viewport',\
content: 'width=device-width, initial-scale=1.0',\
},\
],
scripts: [\
{\
src: 'https://unpkg.com/@tailwindcss/browser@4',\
},\
...(!import.meta.env.PROD\
? [\
{\
type: 'module',\
children: `import RefreshRuntime from "/@react-refresh"\
RefreshRuntime.injectIntoGlobalHook(window)\
window.$RefreshReg$ = () => {}\
window.$RefreshSig$ = () => (type) => type\
window.__vite_plugin_react_preamble_installed__ = true`,\
},\
{\
type: 'module',\
src: '/@vite/client',\
},\
]\
: []),\
{\
type: 'module',\
src: import.meta.env.PROD\
? '/static/entry-client.js'\
: '/src/entry-client.tsx',\
},\
],
}),
component: RootComponent,
})
function RootComponent() {
return (
<>
<div class="p-2 flex gap-2 text-lg">
<Link
to="/"
activeProps={{
class: 'font-bold',
}}
activeOptions={{ exact: true }}
>
Home
</Link>{' '}
<Link
to="/posts"
activeProps={{
class: 'font-bold',
}}
>
Posts
</Link>{' '}
<Link
to="/error"
activeProps={{
class: 'font-bold',
}}
>
Error
</Link>
</div>
<hr />
<Outlet /> {/* Start rendering router matches */}
<TanStackRouterDevtools position="bottom-right" />
</>
)
}
import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
import {
Link,
Outlet,
createRootRouteWithContext,
} from '@tanstack/solid-router'
import type { RouterContext } from '../routerContext'
export const Route = createRootRouteWithContext<RouterContext>()({
head: () => ({
links: [{ rel: 'icon', href: '/images/favicon.ico' }],
meta: [\
{\
title: 'TanStack Router SSR Basic File Based Streaming',\
},\
{\
charSet: 'UTF-8',\
},\
{\
name: 'viewport',\
content: 'width=device-width, initial-scale=1.0',\
},\
],
scripts: [\
{\
src: 'https://unpkg.com/@tailwindcss/browser@4',\
},\
...(!import.meta.env.PROD\
? [\
{\
type: 'module',\
children: `import RefreshRuntime from "/@react-refresh"\
RefreshRuntime.injectIntoGlobalHook(window)\
window.$RefreshReg$ = () => {}\
window.$RefreshSig$ = () => (type) => type\
window.__vite_plugin_react_preamble_installed__ = true`,\
},\
{\
type: 'module',\
src: '/@vite/client',\
},\
]\
: []),\
{\
type: 'module',\
src: import.meta.env.PROD\
? '/static/entry-client.js'\
: '/src/entry-client.tsx',\
},\
],
}),
component: RootComponent,
})
function RootComponent() {
return (
<>
<div class="p-2 flex gap-2 text-lg">
<Link
to="/"
activeProps={{
class: 'font-bold',
}}
activeOptions={{ exact: true }}
>
Home
</Link>{' '}
<Link
to="/posts"
activeProps={{
class: 'font-bold',
}}
>
Posts
</Link>{' '}
<Link
to="/error"
activeProps={{
class: 'font-bold',
}}
>
Error
</Link>
</div>
<hr />
<Outlet /> {/* Start rendering router matches */}
<TanStackRouterDevtools position="bottom-right" />
</>
)
}
Basic + Solid Query (code-based)
Basic + SSR Streaming (file-based)
