On Tuesday, October 20, two native TypeScript compilers shipped news within hours of each other. Microsoft put out the TypeScript 7.1 beta, the second release of the Go port, and Cloudflare published tsrs, a Rust port of the same compiler built with VoidZero and incubated inside Oxc. A year ago the question was whether a native type checker would ever ship. This week the question became which one your CI should run. React Native itself had the quietest week since 0.88 landed: no patch release, a lot of libraries catching up, and one very useful upgrade tool from the community.
Here is what mattered in React and React Native for October 19 to 25, 2026.
News
TypeScript 7.1 beta and tsrs: two native compilers in one day
The TypeScript 7.1 beta (npm install -D typescript@beta) makes es2026 a stable --target and --lib, adds source phase imports (import source), lets ambient module declarations match on import attributes like type: "css", and opens a new programmatic API with typescript/sync and typescript/fs entry points. Microsoft quotes up to 1.9x faster builds and up to 49.6% lower memory on some codebases. The breaking change to watch is stricter checking of distributive conditional types, which is exactly the kind of thing that shows up in a component library’s generic prop helpers.
The same day Cloudflare announced tsrs, a faithful Rust port of the TypeScript compiler, built with VoidZero and Max Schwenk of Owner.com in collaboration with the TypeScript team, and now being merged with Theo Browne’s tsc-rs. The claim is up to 8x faster and about 70% less memory than TypeScript 7.0 at the same worker count. Their argument for Rust over Go is WebAssembly: Go output has to carry its garbage collector, Rust does not. It is an experimental npm package (npm install tsrs) and it still differs from upstream in places such as diagnostic order.
My take: do not switch your build to tsrs this quarter, but do run it next to tsc on a branch. Type checking is the slowest green tick in most React Native CI pipelines I have seen, and two competing native implementations is the best thing that could happen to that number. It also makes “type-aware lint rules that run in milliseconds” a realistic 2027 roadmap item rather than a wish.
React Router 8.5 hands view transitions to React
React Router 8.5 (October 19) deprecates its own view transition APIs in favour of React’s <ViewTransition> component from React 19.3. Wrap an <Outlet> in a persistent layout and remove the viewTransition props; the old APIs keep working for all of v8 and go in v9. Also new and unstable: an API-only mode that serves static HTML from a CDN while loaders and actions run on a separate server origin, and a custom unstable_fetch hook on <HydratedRouter>. I like this direction. A router that stops owning animation is a router with fewer bugs.
Node.js security releases, and a Vite advisory
Node.js shipped security releases on October 21 across three lines: 24.22.1, 26.12.1 and 22.23.4. The list covers HTTP agent data guards, null bytes in DNS resolve inputs, two TLS IP-normalization issues, the permission model in realpathSync, random caches across snapshots and a Brotli decoder fix (CVE-2026-111497), plus OpenSSL 3.5.9 and undici 7.30.1. Your Metro server and EAS build images run on Node, so this is not only a backend problem. Vite published 8.3.5 and 6.4.5 the same day, with an advisory that server.fs.deny could be bypassed with query strings on v6. If you run a React web app on Vite with the dev server exposed beyond localhost, upgrade. Our React Native security guide has the broader checklist.
Releases
The ecosystem catches up with React Native 0.88
The week after a React Native release is always the libraries’ week. Stream Chat React Native 9.10.1 moved to RN 0.88 and Expo SDK 58, and Tamagui 3.1 upgraded its One framework to RN 0.88, React 19.3 and Expo 58, then shipped four patches by Sunday. Expo published patch releases for expo, expo-router and @expo/ui on SDK 58 and, on Tuesday, on every line back to SDK 54. If you are pinned to an older SDK, npx expo install --fix is cheap insurance.
Skia 3.8 removes SkiaPictureView
After last month’s move to the unscoped react-native-skia package, the 3.x line kept its weekly pace: 3.7.1 through 3.7.4 and then 3.8.0 on October 24, which removes SkiaPictureView and renames namespaced factory methods. That is a removal in a minor version, so read the PR before you bump if your code touches the native views directly. 2.15.2 shipped for the 2.x line the same day. Background on the 3.0 split is in our Skia guide.
Styling: Unistyles 3.6 and Uniwind 1.13
Unistyles 3.6 adds an experimental zero-config Metro integration (withUnistylesConfig from react-native-unistyles/metro) that replaces the Babel plugin, and reports plain view re-renders dropping from 13.0 to 6.4 in its own benchmark. Uniwind 1.13 now honours CSS cascade order on native. The Tailwind-on-native question is getting interesting enough that Wednesday’s post on this site is about it.
Sentry, EAS CLI and keyboard-controller
Sentry React Native 8.32 links React Native traces with embedded WebViews through sentryWebViewProps({ allowedHosts }), which is the first time I have seen a hybrid screen show up as one trace instead of two mysteries. It pairs well with our WebView guide. EAS CLI 25.3 adds a --system-image flag to eas simulator:start, lets simulator sessions launch Appium and Argent iOS runs, and is experimenting with a Starter-plan checkout prompt when Free plan builds run out. react-native-keyboard-controller 1.22.8 is back on a weekly cycle with six bug fixes, relevant now that 0.88 deprecated InputAccessoryView in its favour.
Hot Updater 1.1: self-hosted OTA for brownfield apps
Hot Updater 1.1 brings over-the-air updates to brownfield apps that embed React Native as an XCFramework or AAR, adds Vercel and Azure as managed providers, and changes the fingerprint so it only moves when the JavaScript to native interface changes. Three patches followed, including a doctor check that finds HotUpdater.bundleURL() inside a SceneDelegate. For teams that never replaced CodePush with EAS Update, this is the most active self-hosted option.
Worth reading
The thread I would send to every team lead: a free CLI that tells you what will break before you upgrade React Native. Upgrades are Friday’s topic here, so expect a longer opinion then. An Android crash with nothing in Metro, solved by logcat is a lesson every RN developer learns once, painfully. Is React Native for Windows actually alive? is worth reading for the replies. Also: a Kanban library that holds 60 FPS on a 2,000-card board, a live tuner for Reanimated springs, and This Week In React Native #302 for a second curation of the 0.88 week. Outside React, Cheng Lou’s handwired turns plain JavaScript into a neural net, and it is the most fun page I opened all week.
react.dev was quiet again; last week’s issue covered React Native 0.88 if you missed it. On this site this week: shadcn for React Native on Wednesday and a practical guide to the Upgrade Helper on Friday. If you shipped something I missed, tell me in the comments and it goes in next Monday.