DEV.co
Open-Source Testing · callstack

reassure

Reassure is a performance testing library for React and React Native apps that automates regression detection by measuring render times and counts across multiple test runs. It integrates with existing Jest and React Testing Library setups to catch performance regressions before they reach production.

Source: GitHub — github.com/callstack/reassure
1.4k
GitHub stars
36
Forks
TypeScript
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorycallstack/reassure
Ownercallstack
Primary languageTypeScript
LicenseMIT — OSI-approved
Stars1.4k
Forks36
Open issues19
Latest release[email protected] (2026-06-15)
Last updated2026-06-25
Sourcehttps://github.com/callstack/reassure

What reassure is

Reassure measures render characteristics (duration and count) via Jest-based test scenarios, applies statistical analysis to detect significant changes, and generates CI-friendly reports. It supports both component rendering and arbitrary JavaScript function performance measurement, with configurable repeat counts and statistical thresholds.

Quickstart

Get the reassure source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/callstack/reassure.gitcd reassure# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

React Native performance regression detection in CI

Automated performance testing on pull requests to catch render time regressions before merge, using familiar RNTL test patterns with statistical significance analysis.

React.js web app render performance tracking

Measure component render times and identify performance impact of code changes in web applications using React Testing Library, with human-readable diff reports in PRs.

JavaScript function execution performance benchmarking

Measure pure JavaScript function and async operation performance independent of rendering, supporting broader performance regression testing beyond component metrics.

Implementation considerations

  • Tests must be written with `.perf-test.ts(x)` or `__perf__/` naming; ensure Jest configuration recognizes these patterns or update via --testMatch.
  • Scenario functions must properly await async operations (findBy queries, waitFor) to capture complete render cycles and avoid incomplete measurements.
  • CI stability is critical; run baseline measurements on stable branch first, then compare new PRs against known baseline to reduce noise.
  • Default repeat counts may require tuning based on CI environment variance; statistical thresholds are configurable via environment variables.
  • Integration with Danger.js is documented for PR comment reporting; ensure CI runner has permissions to post comments on pull requests.

When to avoid it — and what to weigh

  • You need real-world user session profiling — Reassure measures synthetic test scenarios, not actual user interactions or production behavior. Use APM tools (Datadog, New Relic) for real-world performance data.
  • You lack Jest and Testing Library infrastructure — Reassure requires existing Jest setup and either React Native Testing Library or React Testing Library. Teams without this testing foundation will need significant setup.
  • You need cross-platform performance comparison — Reassure measures in test environment, not on actual devices. For iOS/Android device metrics, native profiling tools are more appropriate.
  • You require strict deterministic benchmarks — Runtime variance is inherent to JavaScript environments. Reassure mitigates this via statistical analysis, but does not guarantee deterministic results.

License & commercial use

MIT License. Permissive open-source license with no restrictions on commercial, proprietary, or closed-source use. Attribution appreciated but not required.

MIT License permits unrestricted commercial use, modification, and distribution. No licensing fees or commercial restrictions. Contributions to the open-source project are appreciated but not mandatory. No proprietary claims or enterprise licensing model present.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

No external service calls or data transmission. Runs entirely in local CI environment and stores results in local `.reassure/` directory. No embedded telemetry or analytics reported in documentation. Inherits security context of Jest/Node.js runtime; ensure CI runner has appropriate access controls. No explicit security audit or CVE history provided.

Alternatives to consider

Lighthouse CI

Measures web app performance via Lighthouse audits (metrics, accessibility, SEO) with CI reporting. Better for full-page metrics; Reassure targets component-level React render performance.

React DevTools Profiler + custom CI scripts

Native React profiling API; requires manual script integration and statistical analysis. More low-level; Reassure provides batteries-included tooling and statistical significance testing.

WebPageTest or SpeedCurve

Real browser performance testing with device simulation and filmstrip analysis. Captures user-perceived performance; Reassure is synthetic test-level and component-focused.

Software development agency

Build on reassure with DEV.co software developers

Reassure integrates with your existing Jest and Testing Library setup. Install via npm/yarn, write performance scenarios, and catch regressions before they ship.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

reassure FAQ

How does Reassure differ from React's built-in Profiler?
Reassure runs scenarios multiple times with statistical analysis to detect significant regressions; React Profiler is a one-time development tool. Reassure integrates into CI workflows and generates PR reports.
Can I use Reassure without React Testing Library?
Not for component rendering. Reassure requires either React Native Testing Library or React Testing Library for measureRenders(). You can use measureFunction() for pure JavaScript performance testing independently.
What does 'statistical significance' mean in Reassure results?
Reassure applies statistical analysis across repeated test runs to determine if performance changes are real or just measurement noise. This reduces false positives from environment variance.
Do I need to commit .reassure baseline files to Git?
Yes. Baseline files (e.g., current.perf) should be committed so CI can compare new branch results against the stable baseline. .reassure/ folder itself can go in .gitignore after committing baselines.

Work with a software development agency

Need help beyond evaluating reassure? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source testing integrations — and maintain them long-term.

Ready to automate your React performance testing?

Reassure integrates with your existing Jest and Testing Library setup. Install via npm/yarn, write performance scenarios, and catch regressions before they ship.