Michał describes performance work for Entain’s sports betting apps, where new features sometimes broke existing memoization without obvious signs in code review. The team wanted a way to catch regressions after optimization, but found no suitable tool. Mate built a proof of concept with React Native Testing Library and React Profiler, which led to an in-house tool and then an open-source library.
Reassure - Open Source performance regression measurement tool
Speakers
Callstack head of technology Michał and senior developer Mate, with host Mukesh in Callstack’s Wrocław podcast room, explain Reassure, an open-source tool for measuring React and React Native component performance.
Reassure measures render performance for React and React Native components by wrapping test scenarios with React Profiler. Tests can mimic user flows, such as opening a screen, entering data, or pressing a button. The speakers say the tool focuses on JavaScript rendering, so it complements rather than replaces real-user and native performance monitoring.
The useful signal is the change between a baseline and a proposed branch, not the absolute render time, which varies across machines. Reassure runs each scenario multiple times, with 10 as the default, and controls factors such as garbage collection and JIT compilation to reduce measurement noise. Users can increase the run count for less stable environments.
The team recommends measuring high-impact user flows and using performance tests to track work on a known bottleneck. In the demo, removing derived state cut a list’s render time from 28 milliseconds to 15 milliseconds and reduced its render count from two to one. A separate memoization change reduced an async scenario’s render duration by nearly 70 percent.
Developers can establish a baseline and compare changes locally, then run both versions on the same CI agent for a more consistent comparison. Reassure produces console output and a Markdown report for pull requests, including significant changes, render-count changes, and added or removed scenarios. The speakers also discuss expanding web examples and CI integrations.
Takeaways
- Add performance tests around the user journeys where regressions would matter most.
- Compare the same scenarios on baseline and proposed code in the same environment.
- Treat render duration as a relative signal, since machine speed changes absolute timings.
- Use Reassure to detect regressions; use profiling tools to investigate their cause.
- Keep performance tests separate from regular tests because repeated runs take longer.
Mentioned in this talk
Search inside this talk
What was claimed 9
- role atMichał is head of technology at Callstack Team
“Michał, our head of technology”
YouTube Unverified1 source· Talk
- builtCallstack Team built
Reassure“an open-source tool created here at Callstack”
YouTube Unverified1 source· Talk
- role atMateusz is expert at Callstack Team
“I’m an expert here at Callstack.”
YouTube Unverified1 source· Talk
- feature
Reassure: Measures React and React Native component render performance and compares results against a baseline to flag regressions.“verify and inform you whether performance has stayed the same, degraded, or—hopefully—improved”
YouTube Unverified1 source· Talk
- uses
Reassure uses Testing Library
“We use React Native Testing Library.”
YouTube Unverified1 source· Talk
- uses
Reassure uses React Profiler“wrap everything with a React Profiler component”
YouTube Verified2 sources· Talk
- metric
Reassure: Runs tests 10 times by default.“Ten is the default.”
YouTube Unverified1 source· Talk
- integrates with
Reassure integrates with GitHub Actions
“we’d like direct integration with GitHub Actions”
YouTube Unverified1 source· Talk






