Skip to content
cccskills
FreePublished on GitHub

react-scan

Record React rendering activity during specific Remotion Studio interactions to investigate repeated renders and slow updates. Compare measurements before and after code changes under matching conditions, and check that behavior still works correctly.

OriginalShow the original description

Capture and analyze Remotion Studio React render profiles through development-only WebMCP tools. Use when diagnosing unnecessary re-renders, slow commits, frame-reactive component trees, or when comparing render performance before and after a change.

See how to install

Good for

  • Investigate unnecessary React renders in Remotion Studio
  • Identify components responsible for slow updates
  • Analyze rendering related to timeline position
  • Compare performance before and after an optimization

Files included (1)

  • SKILL.md3.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

React Scan

Use targeted captures to optimize measured Studio interactions. Do not infer a performance problem from source alone when the workflow can be reproduced.

Record a capture

Start from the repository root:

bun run react-scan:capture

For the Brand Studio, run:

bun run react-scan:capture:brand

Wait for Studio to finish building, open the printed Studio URL with the browser, and let the page settle. The React Scan WebMCP tools are only registered in this development capture mode.

Call start_react_scan_recording, then use browser-use to perform one named interaction three times. Call stop_react_scan_recording immediately afterwards. Keep the recording short so startup, HMR, and unrelated interactions do not dominate the data. Call get_react_scan_recording to return the raw events and an agent-oriented summary.

After retrieving the recording, stop Studio with Ctrl+C. Recordings only live in the WebMCP result; React Scan does not send them to a separate HTTP collector.

React Scan replaces the React DevTools profiling-hook channel while active. Do not record with the React DevTools Timeline Profiler at the same time.

Analyze the evidence

Read the summary returned by get_react_scan_recording first. Confirm the capture contains commit events and inspect profilingHooksStatuses; do not interpret a missing profiling channel as an idle application.

Prioritize components with high total self duration, repeated expensive renders, or a clear user-visible slow commit. Inclusive duration contains child work and can double-count a subtree, so use it to locate an expensive boundary, then use self duration and the raw tree to identify the actual work.

Use render causes as evidence, not automatic prescriptions:

  • High parentRenderCount with no relevant prop, state, context, or hook change suggests a stable memoization boundary.
  • Repeated changed props suggest checking referential stability at the source location before adding memoization.
  • Hook, state, or context changes require following the owning update; wrapping the component in memo() will not block them.
  • Source locations identify JSX call sites. Search for the component definition before editing.

For timeline-position findings, also read ../studio-perf/SKILL.md before changing subscriptions or memoization boundaries.

Verify an optimization

Preserve the baseline capture. After changing code, record the same interaction the same number of times with the same viewport and compare a new capture. Require an improvement in the relevant commit/component metrics without a regression in behavior. Do not optimize every re-render: cheap necessary renders are often preferable to added memoization complexity.

Report the measured before/after change and the checks performed to verify behavior.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

add-bug

FreeSummary

Add a reported Remotion bug to the bugs API with its affected versions, a short title, and upgrade guidance. Follow the existing entry format and place the new record first so recent bugs appear at the top.

  • Adding a reported bug to the Remotion bugs API
  • Recording which versions a bug affects
  • Including upgrade guidance in a bug description
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-cli-option

FreeSummary

Add a Remotion command-line or configuration option, or convert a hardcoded flag into a shared option definition. Connect parsing, configuration setters, help entries, and generated documentation so the option is consistently available and documented.

  • Add a new Remotion command-line flag
  • Convert a hardcoded flag into a shared option
  • Connect an option to Config setters
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-effect

FreeSummary

Add a new effect to @remotion/effects, including its implementation, package entry points, documentation, interactive demo, and preview images. Follow the package conventions and verify the changes with tests, formatting checks, and builds.

  • Implementing a new effect for @remotion/effects
  • Registering effect imports and parameter types
  • Creating documentation and an interactive effect demo
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-expert

FreeSummary

Add a person to the Remotion experts page by placing their portrait, entering their profile and contact links, and generating an expert card image. The instructions specify file locations, profile fields, and how to verify card generation.

  • Add a new person to the Remotion experts page
  • Register a portrait, specialties, and contact links
  • Generate an expert card image
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-new-package

FreeSummary

Create a new @remotion package within the Remotion monorepo, a repository containing multiple packages. Set up its files, register it across the project, and prepare documentation, usage examples, and build configuration.

  • Creating a new @remotion package
  • Registering a package across the monorepo
  • Adding documentation and usage examples
remotion-dev/remotion65.1KUpdated Oct 18, 2026

add-sfx

FreeSummary

Add a new sound effect to @remotion/sfx, from registering the audio file to exporting its URL and documenting its use. The workflow covers playback examples, attribution, navigation entries, waveform generation, and the package build.

  • Add a sound effect to @remotion/sfx
  • Create documentation with playback and usage examples
  • Update sound effect navigation and waveform data
remotion-dev/remotion65.1KUpdated Oct 18, 2026

See all skills by remotion-dev

Report a problem with this skill