Combined Server + Client Middleware
This example demonstrates using both server-side (Hono) and client-side (React Router) middleware on the same route. Each type of middleware runs at different times and can set context values.
Data loaded from: server at 2026-01-11T20:48:38.372Z
🖥️ Server Middleware Info
- Request ID:
- 3925cce6-1a50-4f0e-8fa3-d15e888f6f0b
- Server Time:
- 2026-01-11T20:48:38.371Z
- User Agent:
- Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🌐 Client Middleware Info
Not available (SSR or initial load)
📊 Live Context (from component props)
Server context available:Yes
Client context available:No
💡 When Each Middleware Runs
- Server middleware (Hono): Runs on every HTTP request to the server
- Client middleware (React Router): Runs during client-side navigation only
- Initial page load: Only server middleware runs
- Client navigation: Only client middleware runs
How it works
- Create a
.tsfile with Hono middleware for server-side - Export a
middlewarearray in your.tsxfile for client-side - Both can set values on the
contextobject - The loader checks which context values are available to determine the source
- Components receive
contextas a prop for direct access