A smaller, synchronous runtime for existing React apps. Add one build plugin for TanStack Start, Vite, Vinext or Next.js and ship less client JavaScript without changing application code.
Redact keeps React's APIs and component model (JSX, hooks, context, refs, memo, lazy, portals, error boundaries, streaming SSR, hydration) and swaps the runtime underneath. Imports stay the same; in Vite it's redact() from @tanstack/redact/vite added to the plugin list. In Vinext and Next.js, native React keeps server rendering and Server Components, and Redact takes over in the browser to hydrate and run client components.
The trade is concurrency. Redact renders synchronously, with no time slicing or interruptible renders, though suspended transitions, pending and optimistic action state, and streamed content still work. The project's own benchmark puts client JS+CSS at 70.5% smaller on Vite and 20.4% smaller on Next.js. A compatibility suite runs real browser journeys in Chromium, Firefox and WebKit, covering both App Router and Pages Router. MIT licensed.