Skip to content
Guides

Feature Flags

redact() uses the full preset: all optional features enabled except native animation. Turn off only behavior your app does not need:

ts
redact({ features: { hydration: false, classComponents: false } })
redact({ features: { viewTransitions: true } }) // experimental animation
redact({ preset: 'nano', features: { context: true } })

nano starts with every optional feature off. Overrides merge with the preset. Feature savings overlap and are not additive.

What each disabled feature removes
FlagBehavior when false
activityHidden children unmount and lose state.
fragmentRefsNo Fragment DOM instance.
viewTransitionsNo native snapshots or animation callbacks; the boundary retains state.
portalChildren render in place, not into the target container.
contextProviders do not propagate values; reads return the default.
suspenseNo fallback UI; thrown thenables still retry on settlement.
memoNo prop-equality bailout.
forwardRefNo wrapper forwarding; ordinary ref props still work.
lazyOnly already-synchronous payloads resolve.
classComponentsConstructor, render, and setState only; no lifecycles or error boundaries.
hydrationhydrateRoot throws; use createRoot.