We wanted to move an expensive GraphQL store write off the JS thread. A background worklet looked like the answer. But the cost to serialize the data into the worklet made it a no-go. Here is the experiment.
What inlineRequires actually does to your bundle — before/after Metro output, why Expo keeps it off by default, why default imports defeat it on stock RN, and what rnx-kit's tree shaking really changes.
A Hermes CPU profile showed our Android app spending 2.8 seconds on module resolution alone. That one finding kicked off a full investigation into inlined requires, eager aggregators, and how Expo Router handles this by default.