Maciej describes Reassure as a performance testing tool for React and React Native, with support for measuring standalone JavaScript functions too. It compares a baseline, usually the main branch, with a proposed change so teams can spot regressions before merging. Real user monitoring provides device-level data, but its results can take two to six weeks to appear across a user base.
What’s New in Reassure 1.0
Speakers
Callstack’s Jakub Bąba hosts R&D engineer Maciej and chief engineer Adam to discuss Reassure 1.0 and practical ways to measure React and React Native performance.
Reassure runs measurements repeatedly, compares results on the same machine, and uses statistical analysis to account for variation. The default is ten runs per baseline and current version, with more runs available when measurements are noisy. Version 1.0 made WebAssembly support the default for React Native 0.74 compatibility and changed V8 settings; the team said this could make tests run up to 40% faster.
Reassure can identify redundant renders where a state or context change causes a render with unchanged output. It can also flag an initial render followed immediately by another, such as when a useEffect sets state after mounting. These extra renders may matter most in large views or when handling substantial amounts of data.
Adam recommends trying Reassure locally first, including on side projects or important JavaScript functions, then expanding to selected project areas if useful. Teams should limit tests to business-critical paths because they take time to write and run, and larger React Native tests may need native-module and network mocks. Always add a scenario and assertions where appropriate: a test can pass while measuring the wrong render if it never checks that the expected content appeared.
The guests frame Reassure as an investment in automated performance checks, especially when existing React Native Testing Library scenarios can be reused. They suggest prioritizing complex views, heavy processing, long-lived user data, and lower-end devices rather than testing everything. The project welcomes help with Bun, Vitest, pnpm, CI integrations, and additional report outputs; results are available in Markdown and JSON.
Takeaways
- Compare changes against a baseline on the same machine, and repeat runs to reduce the impact of timing noise.
- Treat Reassure as an early feedback layer alongside real user monitoring, which may take weeks to reflect a release.
- Start with a small set of performance tests for critical screens or costly functions, then expand based on need.
- Add scenario checks so a passing measurement confirms the intended UI or code path actually ran.
- Use existing React Native Testing Library tests and mocks where possible to reduce the cost of adopting performance tests.
Mentioned in this talk
Search inside this talk
What was claimed 22
- role atJakub Bąba is Host of the React Native Show Coffee Talk episode at
Callstack“My name is Jakub Bąba, and today I'm hosting”
YouTube Unverified1 source· Talk
- role at
“I'm working with Callstack in the R&D department.”
YouTube Unverified1 source· Talk
- built
“I maintain React Native Testing Library and Reassure.”
YouTube Unverified1 source· Talk
- built
“I maintain React Native Testing Library and Reassure.”
YouTube Unverified1 source· Talk
- role at
“I'm the Chief Engineer at Callstack”
YouTube Unverified1 source· Talk
- featureReassure: Measures performance of React renders and standalone JavaScript functions
“it's a tool that runs tests for the performance of your code rather than testing its correctness”
YouTube Unverified1 source· Talk
- integrates withReassure integrates with React Native Testing Library
“it's based on React Native Testing Library”
YouTube Unverified1 source· Talk
- invested inCo-sponsor; initially developed for Entain
“Entain is a co-sponsor, or perhaps the main sponsor, of Reassure, because it was initially developed for them”
YouTube Unverified1 source· Talk
- integrates withReassure integrates with React Native
“It can use React Native Testing Library if you're working with React Native”
YouTube Unverified1 source· Talk
- integrates with
“it also supports React.js, for web performance”
YouTube Unverified1 source· Talk
- featureReassure: Supports arbitrary JavaScript functions without requiring React
“it can also measure any kind of JavaScript function”
YouTube Unverified1 source· Talk
- featureReassure: Compares baseline and current runs and repeats measurements to reduce noise
“we always measure two sets of results”
YouTube Unverified1 source· Talk
- metricReassure: 10 measurements per scenario by default
“By default, we measure 10 times in each scenario”
YouTube Unverified1 source· Talk
- usesV8 methodology and statistical tests to analyze repeated measurements
“We also use the same methodology as the V8 JavaScript engine”
YouTube Unverified1 source· Talk
- uses
“To connect to your CI, we rely on Jest”
YouTube Unverified1 source· Talk
- featureReassure: Reassure 1.0 released
“Yeah, last week.”
YouTube Unverified1 source· Talk
- uses
“Node.js, which uses V8 under the hood”
YouTube Unverified1 source· Talk
- uses
“we use Node.js, which uses V8 under the hood”
YouTube Unverified1 source· Talk
- featureReassure: WebAssembly support enabled by default for React Native
“I had to make it the default because React Native is a very important target for Reassure.”
YouTube Unverified1 source· Talk
- metricReassure: Tests can run up to 40% faster
“tests run up to 40% faster”
YouTube Unverified1 source· Talk
- featureReassure: Detects redundant renders and initial renders
“it detects certain cases where renders are redundant”
YouTube Unverified1 source· Talk
- featureReassure: Outputs Markdown and structured JSON results
“One is Markdown for consumption in CI... It also gives you a JSON file”
YouTube Unverified1 source· Talk






