What is Hermes in React Native?

Answer

Hermes is an open-source JavaScript engine optimized specifically for React Native, developed by Meta. It became the default JS engine for React Native 0.70+ (on Android) and 0.71+ (on iOS). Key optimizations: (1) Ahead-of-Time (AOT) compilation: Hermes pre-compiles JavaScript to bytecode during the app build process (not at runtime). The app ships bytecode instead of raw JS source — massively improves startup time; (2) Smaller memory footprint: Hermes is designed for mobile — uses significantly less memory than V8 or JSC (JavaScriptCore); (3) Faster Time to Interactive (TTI): because JS is pre-compiled, the app starts faster — critical for user retention; (4) Garbage collection optimized for mobile — reduces GC pauses. Before Hermes: React Native used JavaScriptCore (the Safari engine). JSC had to parse and JIT-compile JS at runtime — slower startup and higher memory. Enabling Hermes: new projects have it by default. // android/app/build.gradle: project.ext.react = [ enableHermes: true, ] // ios/Podfile: use_react_native!( :hermes_enabled => true ). Hermes Debugger: works with the Hermes Debugger in React Native DevTools (not Chrome DevTools which worked with JSC). Flipper or the new React Native DevTools. Performance impact: significant improvement — apps using Hermes see 10-30% faster startup, 40-50% less memory usage in benchmarks. All new React Native projects should use Hermes.