The New Architecture had been technically available since 0.68. Through most of 2022 it was a demo, not a decision.
0.72 and 0.73 are the two releases where that changed. The remaining integration blockers got fixed, the debugging story stopped being embarrassing, and Metro finally treated monorepos as a first-class setup instead of an afterthought. None of this makes the New Architecture the default yet — that's still three releases away. But by December 2023 a team can opt in without also opting into pain.
#use_frameworks! stops being a New Architecture blocker
Before 0.72, enabling the New Architecture on iOS while also using CocoaPods' use_frameworks! was a reliable way to break your build. Plenty of dependency setups need it, especially anything pulling in Swift pods. 0.72 fixes the compatibility.
That matters more than it sounds. Teams were stuck choosing between the New Architecture and their existing Podfile.
RCT_NEW_ARCH_ENABLED=1 pod install
That's still the whole opt-in on iOS at this point. On Android it's a single flag in gradle.properties.
#Hermes gets faster and more spec-complete
Hermes compilation and JSON parsing both get meaningfully faster in 0.72. That shows up in cold start, and on any screen that parses a large API response.
Hermes also picks up more of the JavaScript spec: Array.prototype.at, well-formed JSON.stringify, AggregateError. Gaps that used to force polyfills.
#Fabric's text rendering gets a real performance pass
Text measurement and layout under Fabric got up to 27% faster on iOS and 18% faster on Android in 0.72. Text is the single most common thing a Fabric screen renders, which makes this one of the more consequential-but-invisible line items in the release. There's no API to call. The app is faster.
#A real debugger, at last
0.73 ships a technical preview of a new JavaScript debugger, meant to eventually replace the Chrome remote-debugging setup most teams had learned to route around. It opens directly into a Chrome DevTools-style UI wired specifically for Hermes. Hermes now buffers console.log output too, so it shows up in the Console tab retroactively once you attach, matching what you'd expect from debugging in a browser.
It's explicitly experimental in 0.73. Treat it as a preview, not your daily driver yet.
#Metro symlinks become the default, not a workaround
Symlink resolution in Metro is on by default in 0.73. If you've ever fought Metro inside a pnpm or Yarn workspaces monorepo, this is the fix: symlinked packages now participate fully in Metro's graph, Fast Refresh included, with no meaningful bundling overhead. Works the same with or without Watchman.
watchman watch-del-all
Worth running once after upgrading if you were previously patching around symlink issues. Clear any stale Watchman state before trusting the new resolver.
#What to adopt first
- Upgrade to 0.73 over 0.72 if you're starting fresh. The debugger preview and symlink fix alone are worth skipping a version.
- If you're on a monorepo with a workspace-based package manager, drop any Metro symlink workarounds you've accumulated and let 0.73's default resolution handle it.
- Try the New Architecture on a branch, not main. It's now buildable without exotic Podfile surgery, but it's still opt-in for a reason — expect to find at least one dependency that hasn't shipped Fabric/TurboModule support yet.
- Don't wait on Hermes-specific ECMAScript features to land elsewhere. If you're on Hermes, they're already available.
- Pilot the new debugger on a low-stakes screen rather than swapping out your existing debugging setup. It's marked experimental for a reason, and it will keep changing before it's the default.