RVE LogoReact Video EditorDOCS
RVE SDK/Rendering/Setting Up Server Rendering/Client Side Rendering/Introduction

Introduction

Client-side rendering in the browser using WebCodecs

Client-Side Rendering (Browser Export) — Default

Client-side rendering is the default rendering mode in the RVE SDK. Users can export videos directly in their browser — no server infrastructure required. Under the hood, the SDK uses @remotion/web-renderer to encode video using the browser's built-in WebCodecs API.

This is enabled automatically when you use the SDK without providing a customRenderer. There are no API routes to implement, no servers to manage, and no cloud configuration. The video is rendered frame-by-frame in the browser and downloaded as an MP4 when complete.


When to Use Client-Side Rendering

Client-side rendering is the default — you're already using it if you haven't configured a customRenderer. It's ideal for:

  • Getting started - works out of the box with zero setup
  • Local-first apps - no server costs or infrastructure to maintain
  • Prototyping and demos - ship a working export immediately
  • Light to medium workloads - most use cases work well client-side

Still confused?

Think of client-side rendering like editing a photo in your browser and hitting "Save As" - the processing happens right on your device. No uploads, no servers, no waiting for a cloud job. The tradeoff is that rendering speed depends on the user's hardware, and some advanced features aren't available in this mode.


Browser Requirements

Client-side rendering requires a browser that supports the WebCodecs API. If a user's browser doesn't support it, the editor will show a dialog recommending they switch to a supported browser.

BrowserSupported
Chrome 94+Yes
Edge 94+Yes
FirefoxNo
SafariNo

Browser compatibility

WebCodecs is not yet supported in all browsers. If your users primarily use Firefox or Safari, consider using SSR or Lambda rendering instead, or offer client-side rendering as an option alongside a server renderer.


Feature Limitations

When client-side rendering is active, certain features are automatically disabled because the web rasterizer doesn't support them:

  • Stickers - sticker panel is hidden and sticker items are filtered from tracks
  • Animations - animation settings are hidden on video, image, and text panels
  • 3D layouts - 3D layout selector is hidden on image panels
  • Greenscreen - greenscreen toggle is hidden (canvas-based fallback is used internally)
  • Caption word highlighting - captions display statically without per-word highlighting

These limitations are handled automatically - the UI adapts so users only see features that work with browser export.


How It Works

User clicks "Export Video"


Browser checks WebCodecs support
  → Unsupported? Shows browser dialog
  → Supported? Continues...


renderMediaOnWeb() renders each frame
  → Uses hardware acceleration when available
  → Progress bar shown to user


Render complete → MP4 blob created
  → Automatic download to user's device

CSR vs Server Rendering

Client-side rendering is the default. You only need server rendering if you have specific requirements like broad browser support or high-volume production workloads.

CSR (Browser) — DefaultSSR (Optional)Lambda (Optional)
Where it runsUser's browserYour serverAWS Lambda
Server setupNoneAPI routes requiredAWS + API routes
Best forGetting started, most use casesFull control, all browsersProduction, high volume
Dependencies@remotion/web-renderer, @remotion/media@remotion/bundler, @remotion/renderer@remotion/lambda
Browser supportChrome/Edge onlyAnyAny

Next Steps