Enable TurboModules and Fabric for Faster Native Bridges
A quick guide to turning on TurboModules and the Fabric renderer in React Native to cut bridge latency and improve UI responsiveness.
Insight
React Native's classic bridge serializes every call between JavaScript and native code, which adds noticeable latency in animation‑heavy screens. TurboModules and the new Fabric renderer replace the serialized bridge with a JSI‑based, direct‑call model, allowing JavaScript to invoke native methods instantly and letting the UI thread render without crossing the bridge. Enabling them today gives you a measurable boost in frame rates and reduces the "jank" that often appears during rapid state updates.
Example
// metro.config.js
const { getDefaultConfig } = require('expo/metro-config');
const defaultConfig = getDefaultConfig(__dirname);
module.exports = {
...defaultConfig,
transformer: {
...defaultConfig.transformer,
// Enable the new Fabric and TurboModules flags
experimentalImportSupport: true,
inlineRequires: true,
enableBabelRCLookup: true,
// Fabric specific
unstable_allowRequireContext: true,
},
resolver: {
...defaultConfig.resolver,
// Ensure native modules are resolved as TurboModules
sourceExts: [...defaultConfig.resolver.sourceExts, 'cjs'],
},
};
Takeaway
Flip the experimentalImportSupport and related flags in your Metro config, then rebuild with EAS. Your app will start using JSI‑powered TurboModules and Fabric out‑of‑the‑box, delivering smoother animations and faster native calls without rewriting existing JavaScript.