Issue #14
A wise monk once told me a line of JavaScript speaks a thousand words, but when that JavaScript calls a node module, it’s practically poetry. Enter Node-API, the JavaScript-world rockstar from Node.js, now crashing React Native’s party thanks to @callstackio and @Microsoft.
You can grab npm modules like @julusian/jpeg-turbo, which binds the C-based libjpeg-turbo library for screaming-fast image compression, and drop them into your app, no C degree required. Builds that took longer than it takes to get your next Tinder match could shrink to ~7 seconds with Node-API’s prebuilt modules, per @callstackio tests, since prebuilt modules skip the “Xcode, why?” compilation slog.
Imagine your photo app’s JavaScript choking on a 10MB selfie? Install @julusian/jpeg-turbo directly into React Native and shrink it:
That module’s C-speed zips images on iOS, Android, and works in your Node.js server too. Plus, npm’s treasure trove of Node-API modules means you’re not reinventing the wheel for heavy tasks like AI filters or encryption. So, why pick Node-API over Turbo Modules? Turbo Modules shine for React Native-specific tasks like UI components or platform APIs (think camera or GPS), tightly integrated with JSI for top performance.
Node-API modules are simpler, often prebuilt, and won’t break when React Native updates, thanks to their ABI stability (meaning the way code talks to native libraries doesn’t change across versions, so things don’t randomly break). JSI’s is apparently getting ABI stability and potentially Node API support in React Native 0.81. For now, you’ll need a patched Hermes and React Native 0.79.1 or 0.79.2 to test it.
👉 Node API Support for React Native
Ever tried squeezing a card into Apple or Google Wallet and found yourself drowning in native SDKs faster than you can say “insufficient funds”?
@swmansion and @expensify react-native-wallet lets users add payment cards to Apple or Google Wallet without you coding separate iOS and Android SDKs. Its unified API handles encryption, card issuer handshakes, and platform-compliant UI. See it in action:
The AddToWalletButton component triggers the wallet flow, auto-hiding if a card’s added or inactive, keeping Apple and Google’s UX police at bay. You’ll need Google’s TapAndPay approval and Apple’s entitlement (about a week to snag), a one-time permission step to unlock the magic.
The package also offers APIs like getCardStatusBySuffix and getCardStatusByIdentifier to check if Visa, Mastercard, or Amex cards are active or already in a wallet, sparing users the “why won’t it add?” meltdown and saving your app from store rejections.
Local LLMs are having a moment—and now Apple’s stepping into the ring. Following Software Mansion’s ExecuTorch, Callstack has dropped @react-native-ai/apple, a library that lets you tap into Apple’s Foundation models directly on-device in React Native. No cloud, no latency, no data leaving the phone.
If you’re building real-time assistants, content generators, or privacy-sensitive AI features, this is a major win. Everything runs locally—meaning zero network dependency and seamless offline support.
Here’s what vanilla usage looks like:
Already using the Vercel AI SDK? You won’t have to refactor your life. The library ships with a compatible interface, letting you drop in Apple’s on-device model with minimal changes:
And for developers who care about structure, the library supports typed JSON outputs using Zod (Zod is a TypeScript-first schema validator—it acts like a contract for your data and in this case makes sure AI output conforms before it hits your app logic). Define a schema, and the model fills it out—no post-processing needed.
This release is in preview and requires React Native 0.80+, Expo Canary, and the New Architecture. The stable release is expected to align with iOS 26, but the future is already here if you’re brave enough to toggle that experimental flag.
Reanimated 4 is now stable—and if that sounds familiar, it’s because the beta dropped months ago. The January announcement gave us a sneak peek at a more modular, declarative future for animation in React Native. Now it’s officially out of preview and ready for production.
The big addition is support for CSS-style animations and transitions. This means you can animate styles using props like transitionProperty, transitionDuration, or animationName—without setting up shared values, withTiming, or worklets (tiny chunks of JavaScript that run on a separate thread, bypassing the main JS thread to keep animations smooth and responsive) for every minor motion. These run off the UI thread, declaratively, and are especially well-suited for one-off transitions.
Here’s what the new CSS-style API looks like in practice:
So what’s the catch? There isn’t one, really—just don’t throw out your worklets yet. The team has been clear: CSS-style animations are perfect for simple transitions, but anything tied to gestures, scroll, or complex interaction logic still needs worklets. These haven’t been deprecated; they’ve just been moved into their own package (react-native-worklets) and modularised for better composability.
But before you start declaring animationName on every <View>, it’s worth noting that Reanimated 4 requires your app to be running on the New Architecture. That means JSI, Fabric, and TurboModules under the hood.
One behavioural change to watch out for is with spring animations. Reanimated 4 ships with a new default spring implementation that trades brittle physics for something more predictable. The old version often produced janky results unless you massaged the threshold parameters just right. The new approach focuses on damping ratio and duration—so animations land where they should, when they should, without needing a PhD in motion design.
React Universe is back this September, taking place in Wrocław, Poland from September 2–4, 2025, the conference promises two days of keynotes, lightning talks, workshops, and at least one person accidentally saying “React Native is dead” before being gently escorted off stage. With speakers like Nicola Corti and Fernando Rojo, and the Expo team in the mix, expect deep dives into the future of cross-platform development, New Architecture war stories, and enough acronyms to make your head spin.
And yes, we’ll be there. Both myself and Friosn will be wandering the halls—probably jet-lagged, definitely over-caffeinated, and pretending to be deeply moved by the nuances of the JSI event loop.
Oh, and if you want to come hang out IRL, use the code “RNR15” at checkout to get 15% off your ticket. Because friends don’t let friends pay full price for conferences.