Issue #16
In case you missed it, we were in Wrocław last week. And if you’re asking why we were in this nearly unpronounceable city—well, it’s because we were at React Universe Conf 2025, where everyone and their dog crawls out from under a rock to release something, whether it’s a v2 or, cough cough, a long-awaited version 1.0…
We were there, and if you’re having your “picture or it didn’t happen” moment, here we are— all three of us—contributing to and building the React Native community, as we always do:
So it would be unfair to cover anything else before Callstack’s collection of precious stones. Seriously, what’s with everyone’s fetish these days for naming their libraries after stones or elements? Rozenite, Ottrelite, Radon… I guess Callstack figured, why polish another gem when you can just drop a Rock?
Yes, Rock. And now it's solid. Solid as a Rock. But what actually is it?
Rock’s superpower is reliable caching of native artifacts. When you build an iOS or Android app, the expensive part isn’t the JavaScript bundle — it’s generating the native binaries (IPA, APK). Rock separates those two worlds. It builds the native shell once, stores it (GitHub Actions, S3, R2, wherever you like), and then reuses it across subsequent builds. One team reported shaving build times from 35 minutes to under 4.
The trick is in the fingerprint. Rock hashes your native code and dependencies so it knows if anything native has changed. If not, it skips the native rebuild and simply injects the new JavaScript bundle into the already-built binary.
Caching is just the start. Rock lets you pick your bundler: Metro for the “it just works—until it doesn’t” default, or Re.Pack (a Webpack-based bundler that brings code-splitting and micro-frontends to React Native) if you’re ready to build super-apps (think WeChat but with fewer payment scandals). Under the hood it’s Webpack, which means you get proper code-splitting and mobile micro-frontends (instead of one big monolith, you stitch together multiple smaller, independently built and deployed UI chunks into a single app).
Rock lets you package your React Native app as a framework and drop it into existing iOS and Android apps like any other library. This lowers the barrier for big organisations with legacy native apps who want React Native features without rewriting the house from scratch.
👉 Rock
So if you have been following The Battle of the Lists, you’d probably know about Legend List (it’s claimed to be the fastest React Native FlatList alternative) built by Jay Meistrich @jmeistrich, so yeah v2 was released at React Universe Conf 2025, take that Shopify!
Legend List v2 isn’t just a performance bump; it quietly fixes one of the most maddening parts of list UIs: keeping your place when new stuff shows up (if you know it, you know it). Normally, when you load more messages in a chat or infinite scroll feed, React Native’s default behaviour is a bit like someone yanking the book out of your hands and reopening it a few pages earlier. That’s where maintainVisibleContentPosition (mVCP) comes in.
Legend List v2’s biggest win is a rebuilt maintainVisibleContentPosition (mVCP) engine — the bit that tells the list to stay anchored on what you’re looking at while new items stream in above or below. React Native’s stock version was twitchy, often losing its place on scrollToIndex, or during infinite scroll, leaving you with flashes and jumps.
Below the Legend List example, a list is being scrolled at speed while items are added at random indexes, showcasing the stability of the maintainVisibleContentPosition functionality.
Legend List v2 also leans into the growing push for proper Web support in React Native. Because the core is written in plain JS with no native bindings, the same list logic runs seamlessly on iOS, Android, and the browser. If you are building Universal Apps, you’ll appreciate how big of a deal this is. And if you want to dig deeper, @jmeistrich covered the web implementation during React Universe Conf (5:03:55). Although Jay mentioned in the talk that “web is barely working” and still needs further optimization to be stable, it already seems to work better than a number of other libraries.
So, here’s a question: when was the last time you got genuinely excited about your testing toolchain? Yeah, me neither. But Maestro 2.0 is trying to change that — not by giving you another CLI flag to memorise, but with something actually usable: a desktop app.
Maestro Studio Desktop (beta) lets you poke around your app visually and records what you do as test steps. Tap a button, swipe through a screen, type into a field — Studio turns those into runnable flows you can save and reuse. It’s not a silver bullet (you’ll still polish scripts now and then), but it’s a far cry from staring at YAML and guessing selectors.
And then there’s the AI bit, of course — Maestro MCP. For those of you who are comfortable making deals with the devil vibe coding, this is where things get spooky-useful. MCP will run your tests, spot when they fail, and even try to heal them automatically. Flaky test? Broken selector? Instead of burning an afternoon debugging, you can let MCP take the wheel while you sip your kiwi-flavoured kombucha and pretend you’re “monitoring logs.”.
Between the new desktop app and MCP, Maestro 2.0 feels less like “another testing framework” and more like a quiet assistant in the background. Which does raise a question: if your tests start helping themselves, do you finally run them more often?
PS. RIP Waldo.
Blur. We’ve all faked it. Some of us with half-broken Skia shaders, others with a stack of semi-transparent <View>s that only looked good on one device (in one light, on one Tuesday). But now, thanks to Callstack, you can stop pretending.
Callstack Liquid Glass brings Apple’s new iOS 26 material effect straight into React Native. Drop in a <LiquidGlassView>, pick your flavour (regular or clear), and flip on interactive if you want that glossy “press ripple” Apple showed off on stage.
And yes, we know — sigh, another blur library. We’ve probably mentioned more fake glass than IKEA’s marketing team. But this one does have a twist: LiquidGlassContainerView handles Apple’s new “merging surfaces” trick automatically, so when two blurry panels meet, they blend into a single sheet instead of looking like badly overlaid PNGs.
Why does this matter? Well, because skeuomorphism (design that mimics real-world materials and textures—think leather-bound calendar apps or glassy buttons that look pressable) is back, baby. Between Apple’s glassy panels in iOS 26 and Android’s Material You translucency obsession, blurred backgrounds are no longer optional UI garnish—they’re the design trend.
Remember all those nights swearing at Xcode because your provisioning profile expired five minutes before the deadline? Or the joy of digging through Google Play Console’s labyrinth just to upload the same APK for the fourth time? Expo saw all that pain and basically said, what if we just let people click a button instead of pretending they enjoy DevOps?
Expo Launch is exactly that: you hand it your GitHub repo, poke around a browser UI, and it handles the whole mess — building, signing, and submitting your app without you touching a CLI or opening Apple’s portal of despair.
Yes, “one-click deploy” has been promised more times than React Native has been “finally stable,” but here’s the kicker: this isn’t a random script repo. It’s running on the same EAS plumbing that’s already quietly building half the apps in the ecosystem. The vibe-coder’s dream — ship without really knowing what you’re doing — just became productised.
So go ahead: push some code, pour yourself a coffee, and let Launch deal with the rituals. Just don’t act surprised when your PM realises they can ship production builds, too.