---
image: /generated/articles-docs-client-side-rendering-index.png
crumb: 'Overview'
sidebar_label: Overview
title: Client-side rendering
---

Client-side rendering is a Remotion capability that allows you to render videos, images, and audio directly in the browser, without requiring server-side infrastructure.

It is available through the [`@remotion/web-renderer`](/docs/web-renderer) package and is stable from <AvailableFrom v="4.0.491" inline />.

## Key differences from server-side rendering

Unlike server-side rendering with [`@remotion/renderer`](/docs/renderer), client-side rendering:

- Runs in the browser - No need to setup Node servers or Remotion Lambda
- Encodes with WebCodecs using [Mediabunny](/docs/mediabunny) instead of FFmpeg
- Limited to a subset of HTML elements - see [limitations](/docs/client-side-rendering/limitations)
- No bundling step - takes components and video config directly

## Browser support

Client-side rendering requires the [WebCodecs API](https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API), which limits browser support to:

| Browser | Minimum version |
| ------- | --------------- |
| Chrome  | 94+             |
| Firefox | 130+            |
| Safari  | 26+             |

## APIs

The package provides APIs called [`renderStillOnWeb()`](/docs/web-renderer/render-still-on-web) and [`renderMediaOnWeb()`](/docs/web-renderer/render-media-on-web).

Here is an example of how to use it:

```tsx twoslash title="Example"
import {renderMediaOnWeb} from '@remotion/web-renderer';

const Component: React.FC = () => {
  return (
    <svg viewBox="0 0 100 100" width="100" height="100" style={{transform: 'rotate(45deg)'}}>
      <polygon points="50,10 90,90 10,90" fill="orange" />
    </svg>
  );
};

const {getBlob} = await renderMediaOnWeb({
  composition: {
    component: Component,
    durationInFrames: 100,
    fps: 30,
    width: 100,
    height: 100,
    calculateMetadata: null,
    id: 'my-composition',
  },
  inputProps: {},
});
```

## Remotion Studio

Client-side rendering is always enabled in the Remotion Studio from <AvailableFrom v="4.0.491" inline />. Use the "Render in browser" button to start a render.

## Telemetry

Client-side rendering always sends a telemetry event for every render, even if no license key is set.  
See [Telemetry](/docs/telemetry) for which information is sent and how to set a license key.

## See also

- [How it works](/docs/client-side-rendering/how-it-works)
- [Limitations](/docs/client-side-rendering/limitations)
- [Telemetry](/docs/telemetry)
- [Server-side rendering](/docs/ssr)
