React Router 8on Cloudflare Workers

The front-end platform, in one reference app

A production-shaped surface that renders static marketing pages, runtime-SSR routes, and authenticated app routes from a single edge Worker — reusing the platform’s design system, auth, and domain clients.

First-load JS
~430 KB

gzipped, one edge bundle

Render modes
3

static · SSR · authed

New WorkOS apps
0

reuses platform AuthKit

In-app domain logic
0

all over service bindings

Why it exists

A thin, fast surface you can copy

Every capability below is shared infrastructure an app imports — so a new surface is a few files of configuration, not a rebuild.

React Router 8 on the edge

The Worker renders React Router itself — no opennext, no Node shim. One runtime serves every route.

Static, SSR, and authed

One Worker serves this prerendered marketing page, runtime-SSR routes, and session-gated app routes.

Imports-only apps

The shell, auth flow, and edge entry live in @package/web-kit. An app is configuration, not infrastructure.

Reused WorkOS auth

AuthKit sessions reuse the platform’s existing WorkOS application. A new surface creates zero identity setup.

Design system built in

@package/web-ui ships the design tokens and Base UI components every surface renders — themeable, dark-mode aware.

A tiny footprint

~430 KB of first-load JS against a multi-megabyte opennext bundle — fast cold starts and cheap edge compute.

See both rendering modes running

This page is prerendered — it ships as static HTML. Open the app for the authed, session-gated route, or the status page for live per-request server rendering.