Note
The server entry point is optional out of the box. If not provided, TanStack Start will automatically handle the server entry point for you using the below as a default.
This is done via the src/server.ts file.
// src/server.ts
import handler from '@tanstack/react-start/server-entry'
export default {
fetch(request: Request) {
return handler.fetch(request)
},
}
// src/server.ts
import handler from '@tanstack/react-start/server-entry'
export default {
fetch(request: Request) {
return handler.fetch(request)
},
}
The entry point must conform to the following interface:
export default {
fetch(req: Request): Promise<Response> {
// ...
},
}
export default {
fetch(req: Request): Promise<Response> {
// ...
},
}
Whether we are statically generating our app or serving it dynamically, the server.ts file is the entry point for doing all SSR-related work.
You can create custom server handlers to modify how your application is rendered:
// src/server.ts
import {
createStartHandler,
defaultStreamHandler,
} from '@tanstack/react-start/server'
// Custom handler example
const customHandler = (request, response) => {
// Add custom logic here
return defaultStreamHandler(request, response)
}
const fetch = createStartHandler(customHandler)
export default {
fetch,
}
// src/server.ts
import {
createStartHandler,
defaultStreamHandler,
} from '@tanstack/react-start/server'
// Custom handler example
const customHandler = (request, response) => {
// Add custom logic here
return defaultStreamHandler(request, response)
}
const fetch = createStartHandler(customHandler)
export default {
fetch,
}
The server entry point is where you can configure server-specific behavior:
This flexibility allows you to customize how your TanStack Start application handles server-side rendering while maintaining the framework's conventions.
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.