React Router
React Router framework mode builds the browser application and its server-rendering code, but it still needs a server to receive requests. Nitro provides that server. Workflow SDK integrates with Nitro to add the durable workflow routes and build artifacts.
The three pieces share one Vite build:
- React Router builds your routes, loaders, actions, and browser assets.
- Nitro runs the React Router request handler and any routes in
server/routes. - Workflow SDK finds files with
"use workflow"and"use step", then adds its runtime routes to Nitro.
Choose the guide that matches your React Router major version:
React Router v7
Add durable workflows to a React Router v7 framework-mode app using Nitro v3.
React Router v8
Add durable workflows to a React Router v8 framework-mode app using Nitro v3.
These guides require Nitro v3. Nitro v2 does not provide the Vite environment integration used by this setup.
What the bridge does
The setup adds a small server/ssr.ts file. It turns React Router's generated server build into a standard Fetch API handler that Nitro can run. The Vite config then points Nitro's server and public output at the same build directory React Router uses.
This is configuration in your application, not a separate React Router adapter. Your React Router routes remain React Router routes, while Nitro owns the HTTP server and Workflow SDK uses Nitro's lifecycle and routing.