---
title: Client rendering
---

Rakkas provides a `ClientOnly` component for opting out of server-side rendering. It renders a fallback on the server and renders its children only on the client. `ClientOnly` also acts as a suspense boundary. You can use [`React.lazy`](https://reactjs.org/docs/code-splitting.html#reactlazy) in combination with `ClientOnly` to load components that don't support server-side rendering:

<CodeViewer
  name="guide-samples"
  openFiles={[
    "src/routes/client-suspense/index.page.tsx",
    "src/routes/client-suspense/ClientComponent.tsx",
  ]}
  url="/client-suspense"
/>

Another use of `ClientOnly` is to wrap a layout's children to disable SSR for parts of an application.
