---
title: React Router
description: Run durable workflows in a React Router framework-mode app using Nitro.
docs_index: /llms.txt
lastUpdated: 2026-10-21
type: overview
summary: Choose your React Router version and connect React Router, Nitro, and Workflow SDK.
related:
  - /docs/getting-started/nitro
  - /docs/getting-started/vite
  - /docs/foundations/workflows-and-steps
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

React Router framework mode builds the browser application and its server-rendering code, but it still needs a server to receive requests. [Nitro](https://v3.nitro.build) provides that server. Workflow SDK integrates with Nitro to add the durable workflow routes and build artifacts.

The three pieces share one Vite build:

1. **React Router** builds your routes, loaders, actions, and browser assets.
2. **Nitro** runs the React Router request handler and any routes in `server/routes`.
3. **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:

> 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.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)