In a real app
A Nitro module is recognizable by its *.nitro.ts files (the specs), a nitro.json at the root, and the npx nitrogen command that generates the native code. The consuming project installs react-native-nitro-modules as a dependency, and every Nitro library depends on it too. On the JavaScript side, a Hybrid Object is instantiated with NitroModules.createHybridObject<Type>("Name"), and its lifetime is tied to the app’s garbage collector.
The choice depends on the call profile. For an API called a few times per screen, the Expo Modules API or a Turbo Module do the same job with more widespread tooling. Nitro wins when calls are synchronous and frequent (a key-value store read on every render, image processing, audio), or when native code has to hold stateful objects and hand them back to JavaScript without serialization. The price: a more demanding toolchain (Xcode and NDK versions), modern Swift and Kotlin as hard requirements, and a smaller contributor base than Expo’s.
In an audit I check that the minimum versions are respected in expo-build-properties or in the Podfile and build.gradle, that nitrogen actually runs in the build scripts (or that generated files are committed, which is acceptable), and that a Nitro library and a Turbo library are not fighting over the same native resource.
Related terms
Turbo Modules
Native modules in the New Architecture: a TypeScript spec, code generated by Codegen, and lazy loading through JSI.
Expo Modules API
Expo’s API for writing native modules and views in Swift and Kotlin with one shared DSL, with no Objective-C or bridge boilerplate.
JSI (JavaScript Interface)
The C++ API that lets JavaScript hold direct references to native objects with no serialization: the foundation of the New Architecture.
Codegen
React Native’s build-time tool that generates the native glue (C++, Java, Objective-C++) from TypeScript or Flow spec files.
New Architecture
The rewrite of React Native internals (Fabric, Turbo Modules, JSI), on by default since 0.76 and the only architecture since 0.82.