Install any skill in seconds. Free to start, no credit card required.
Get Started Free →remotion-dev/studio-perf
Optimize Remotion Studio render performance by minimizing frame-reactive component surfaces, preferring imperative timeline state reads, and memoizing stable render boundaries.
Passed 19 of 24 test cases with the skill, and 13 of 24 without it.
and 4 more in the full report
6 fixed13 passed either way5 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
We created a `StudioUIContext` in Remotion that subscribes to frame updates and provides the frame number to all children. Now all buttons, sidebars, and panels in our Studio plugin are re-rendering every frame. How should context and frame reactivity be structured to keep ancestor panels stable?
| Checked | Without skill | With skill |
|---|---|---|
| recommends keeping parent context components non-reactive to frame ticks | Passed | Passed |
| recommends placing frame subscriptions using useTimelinePosition inside leaf consumers | Missed | Passed |
The instructions your model reads when the skill loads.
Keep dependencies on the current frame as low in the component tree as possible.
Prefer imperative timeline state reads such as getCurrentFrame() over
Internals.Timeline.useTimelinePosition() for event handlers and other
on-demand logic.
Use useTimelinePosition() only in the smallest leaf component whose rendered
output must change with the frame. If a parent reads the frame only to pass it
to a child, extract a frame-subscribing child so the parent and its other
descendants stay stable.
Wrap components in React.memo() when they can safely skip parent-driven
renders. Confirm that their props remain referentially stable across frame
updates: newly created objects, callbacks, styles, or React nodes defeat shallow
memoization. Stabilize those props only where it is natural; avoid custom
comparators that ignore behaviorally relevant changes.
Context subscribers continue to update through memoized ancestors. Prefer a memoized stable parent with a small frame-subscribing leaf over making the whole subtree reactive to the current frame.
test cases passed, vs 13 / 24 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.