React and React Native Weekly: Skia Leaves Shopify’s npm Scope and Ships 3.0 (Oct 12, 2026)

Skia moves to react-native-skia and ships 3.0 on Graphite, Next.js 16.4 makes Cache Components the default path, Vite patches three dev server bugs.

React and React Native Weekly: Skia Leaves Shopify's npm Scope and Ships 3.0 (Oct 12, 2026)

For four years the install line for React Native Skia started with @shopify/. As of last Monday it doesn’t. The package is now plain react-native-skia on npm, the GitHub repo redirects to William Candillon’s account, and the first release under the new name was a major version that swaps the rendering engine underneath. Seven more 3.x releases followed before Sunday night. When Shopify said in September that it was moving its apps back to native, we expected the handover to take until next year. It took four weeks.

Here is what mattered in React and React Native for October 5 to 11, 2026.

News

React Native Skia 3.0: new package name, new GPU backend

Skia 3.0.0 landed on npm on October 5 as react-native-skia. Its one feature line is “Graphite Canvas”, and its breaking change note is short and blunt: this is React Native Skia on Graphite, Skia’s newer GPU backend, so Android now needs minSdk 26 and renders through Vulkan instead of OpenGL. On Apple platforms it runs on Metal. The scoped @shopify/react-native-skia package stops at 2.14.0, published October 1. The 2.x line continues under the new name as react-native-skia@2 on a release-2.x dist-tag (2.15.1 on October 8), and the README says v2 “is still maintained”.

3.x shipped fast after that. 3.1.0 links Dawn from a separate react-native-webgpu-dawn package, 3.2.0 adds a new snapshot API and cleans up GPU resource deletion, 3.3.0 brings Graphite and Dawn to Mac Catalyst, and 3.4.0 on Sunday adds tvOS. 3.4.1 was published at 4am today.

My take: do not move a production app to 3.x this month just because latest points there. The minSdk 26 floor alone will cut some Android users, and a new GPU backend is precisely the change where a device you never tested on shows you a black canvas. What you should do this month is change the package name. Every upgrade from here comes from react-native-skia, and a scoped package that has stopped publishing quietly becomes the thing your dependency audit flags in six months. Pin react-native-skia@^2.15, follow the migration guide, and test 3.x on a branch with a cheap Android phone in your hand. Our Skia guide predicted a fork and rename in early 2027, which turned out to be a generous estimate.

Next.js 16.4 makes Cache Components the recommendation for every app

Next.js 16.4 (blog October 6, release October 7) says plainly that Cache Components, the 'use cache' model plus Partial Prefetching, is now “the best choice for every Next.js app” and that it becomes the default in Next.js 17. New apps from create-next-app get it switched on today. Two additions close the gaps that kept it optional: export const ensureStatic ('shell', 'prefetch' or 'navigation') fails the build if a dynamic component sneaks into a route that is supposed to be static, and the new navigation() and prefetch() functions from next/cache let you leave part of a page out of a prefetch.

The other half of the post is about agents. next upgrade --agent hands your coding agent a version-specific upgrade plan, experimental.agentUpgrade nags you in next dev when a security release covers your version (that is the default policy), and experimental.agentFeedback lets the agent draft bug reports for you to review before anything is sent. Turbopack also gets a 20 to 25% smaller disk cache, lazy server HMR and shorter CSS Module class names in production.

ensureStatic is the feature I would actually use. After three Next.js security releases in three weeks, all of them about things the server renders or caches for you, a build-time guarantee that a marketing page cannot quietly become dynamic is worth more than any new caching primitive.

Vite patches three dev server advisories across four release lines

On October 6, Vite shipped 8.3.3 along with backports 8.2.4, 7.3.7 and 6.4.4, all within two hours. Three advisories went public that afternoon: files outside server.fs.allow could be served when project paths match system paths on non-Windows machines, the first four bytes of any file leaked through ?vite-wasm-instance, and a low severity cross-origin script execution through custom middleware. All three are dev server bugs, so they only matter if your dev server is reachable from somewhere other than your own laptop. With --host in half the tutorials out there, that is more of you than you would think. 8.3.4 followed on Thursday with ordinary fixes.

Releases

React Native 0.88.0-rc.4

rc.4 (October 7) has two entries. TypeScript module augmentation can now extend generated props and style types, and on Android a view properly re-enables after accessibilityState.disabled goes from true back to false, a bug that left Pressable partly untappable. Still no stable release, so Expo SDK 58 is still on the next tag ([email protected] on Friday) while latest stays on 57.0.27.

react-native-screens 4.29.0

4.29.0 (October 9) moves native Tabs to Apple’s UITab API on iOS 26.1 and later. It adds tabBarSidebarPreferredPlacement for the iOS 27 sidebar, a UISearchTab through automaticallyActivatesSearch, and custom drawable and SF Symbol tab icons. The Android fixes are the ones that end support tickets: fragment restoration that survives R8, orphaned fragment cleanup, and no crash during instance teardown. If react-native-screens is new to you, it is probably in your app anyway.

EAS CLI 24.11 and 24.12, plus native crashes in EAS Observe

24.11.0 adds browser device login with resumable commands “for chat agents” and records iOS Simulator sessions. 24.12.0 uploads the embedded bundle from custom builds and puts signed assetMapUrl and sourceMapUrl into eas update:view --json. Separately, Expo announced on October 7 that EAS Observe now records native crashes next to JavaScript errors (SDK 57 needs 57.0.21 or later). For a lot of teams that means one less SDK in the app.

Also shipped

  • Node 26.11.0 adds Buffer.stringLength(), buffer.isLatin1, http.isValidHeaderName() and promotes Alpine to tier 2. 26.11.1 the same night reverted the docs redesign that came with it.
  • Bun 1.4.3 on October 10.
  • TanStack Query 5.104.2 and a TanStack Router/Start release train on the 10th, both patch level.
  • Stream Chat React Native 9.9.3 fixes context menu edge cases.
  • Storybook 11 alphas 2 to 5 and Vue 3.6.0-rc.11 for anyone keeping score outside React.

Worth reading

Expo’s Your skills need an evaluation mechanism (October 8) explains how they check, in CI, whether coding agents actually find and use the skills they publish. It is the first honest write-up I have seen on testing documentation that is written for machines.

On r/reactnative the week’s top post is I lost my biggest client because of a bug that wasn’t even a bug, which is worth reading before your next scope conversation. Also: half of the 925 React Native apps published for RevenueCat’s Shipaton are iOS only, which undercuts the usual cross-platform pitch. How painful are upgrades for your team right now collected answers I recognise. And there is a farming game AMA from a team ten months live with $35k in revenue. And after three weeks of “is React Native over” threads, Can it be done without RN has the best title of the month.

react.dev and reactnative.dev were quiet again. On this site this week: bottom sheets with @gorhom/bottom-sheet on Wednesday, and a date picker comparison on Friday. If you shipped something I missed, tell me in the comments and it goes in next Monday.

Leave a Reply 0

Your email address will not be published. Required fields are marked *