# Radi > Radi is a reactive JSX runtime with plain-function components, explicit DOM updates, server rendering, and static generation with interactive islands. These docs describe the current repository API. Components run once; dynamic expressions are functions evaluated by explicit updates. Do not assume React hooks or React rerender semantics. Server JSX uses radi/server; client JSX uses radi. Resumable islands use explicitly registered handlers, not serialized arbitrary closures. ## Documentation - [Guide](https://radi.js.org/index.md): Installation, JSX configuration, components, reactivity, lifecycle, rendering, and the full client, server, resumption, static generation, signal, channel, renderer, and JSX API reference with code examples. Generated from the same content as the human-readable guide. - [Server rendering](https://radi.js.org/docs/server-rendering.md): Rendering APIs, async behavior, streaming, and limitations. - [Go and embedded V8](https://radi.js.org/docs/go-server.md): TSX bundling, the Go HTTP handler, async Flop operations, configuration, streaming, cancellation, deployment limits, and release checks. No Node/Deno serving process or persisted code cache. - [Resumption](https://radi.js.org/docs/resumption.md): Boundaries, state, handler registration, event support, and limitations. - [Static sites](https://radi.js.org/docs/static-sites.md): Route generation, output writers, bootstrap scripts, and deployment. - [Client routing](https://radi.js.org/docs/routing.md): SPA navigation, lazy route modules, loaders, actions, revalidation, cancellation, caching, and Go/V8 integration requirements. The router uses flat routes and does not provide automatic SSR hydration or Remix API compatibility.