weshipit.today — React Native Newsletter — 2026-W11
Week of March 9, 2026 – March 15, 2026
Items This Week
| # | Title | Label | Link |
|---|---|---|---|
| 1 | React Navigation 8 — March Progress Report | 🟦 RN | Read |
| 2 | expo-widgets — Home Screen Widgets & Live Activities in Expo (alpha) | 🟧 EXPO | Read |
| 3 | Expo Observe — Production Performance Monitoring (private preview) | 🟧 EXPO | Read |
| 4 | React Native 0.85 RC.0 — StyleSheet cleanup, dropped EOL Node.js | 🟦 RN | Read |
| 5 | Vite 8.0 — Rolldown replaces esbuild/Rollup, Babel dropped, Oxc steps up | ⚛️ REACT | Read |
Sources: This Week In React #272 (Mar 11, 2026) · React Status #466 (Mar 13, 2026)
5-Day Action Plan
🟦 Chunk 1 — Migrate to React Navigation 8 Alpha and Adopt Schema-Validated Deep Links
Goal: Upgrade to React Navigation 8 alpha to unlock Zod-powered deep link validation, automatic URL path generation, native symbols, and Material 3 theming — all while staying ahead of the stable release.
Scope:
- Install the React Navigation 8 alpha packages (
@react-navigation/native@alpha) - Replace manual deep link path config with the new automatic path-from-screen-name system
- Add Zod schemas to validate and type-check incoming deep link params on at least 2 screens
- Swap existing icon usage to the new
SFSymbolcomponent (iOS) where applicable - Run smoke tests on iOS and Android to catch regressions
Out of scope: Full navigation rewrite, Android MaterialSymbol adoption (can follow in a separate chunk), custom transitions.
Dependencies: React Native ≥ 0.83, React 19, Zod ≥ 3.
Acceptance criteria:
- Deep links to the 2 target screens are validated and typed with Zod schemas
- Screen paths are auto-generated without a manual
linkingconfig object - A non-technical stakeholder can tap a deep link and land on the correct screen with valid data
- No navigation-related crashes in the CI smoke test run
Estimated effort: M
🟧 Chunk 2 — Implement a Home Screen Widget with expo-widgets (Alpha)
Goal: Ship the app's first iOS home screen widget using expo-widgets alpha, giving users at-a-glance access to key app data directly from their home screen.
Scope:
- Install
expo-widgets(alpha) and configure the Expo Config Plugin - Define one widget (small size) using the SwiftUI primitive tree exposed by Expo UI
- Connect the widget to a real data source via App Group / shared
UserDefaults - Test on a physical iOS device (widgets require hardware) in at least two size variants
Out of scope: Android widgets (not yet supported), interactive widget actions, multiple widget sizes beyond small + medium.
Dependencies: Expo SDK 55, iOS 14+, Apple Developer account with App Groups entitlement, physical iOS device.
Acceptance criteria:
- The widget appears in the iOS widget picker and is addable to the home screen
- Widget data reflects the current app state within the standard widget refresh window
- A non-technical stakeholder can add the widget and read live data without opening the app
Estimated effort: M
🟧 Chunk 3 — Integrate Expo Observe for Production Performance Monitoring
Goal: Gain real-world performance visibility into the production app by connecting Expo Observe, enabling P90/P99 metric tracking and build-over-build regression detection.
Scope:
- Request and configure access to Expo Observe (private preview) via the Expo dashboard
- Instrument 2–3 key screens with performance markers (TTI, JS bundle load, screen render time)
- Set up a baseline build and validate that metrics appear in the Expo Observe dashboard
- Define a performance budget threshold for P90 TTI and configure an alert
Out of scope: Custom metrics beyond what Expo Observe exposes, integration with third-party APM tools (Datadog, Sentry), Android-specific perf profiling.
Dependencies: Expo SDK 55, EAS Build, Expo Observe private preview access.
Acceptance criteria:
- At least 3 performance metrics are visible in the Expo Observe dashboard for a production build
- A regression (intentionally introduced in a test build) is detectable by comparing two builds side by side
- A non-technical stakeholder can read the dashboard and identify which build is slower
Estimated effort: S
🟦 Chunk 4 — Upgrade to React Native 0.85 RC and Remove StyleSheet.absoluteFill
Goal: Adopt RN 0.85 RC early to discover breaking changes before stable release, with a focus on removing the deprecated StyleSheet.absoluteFill and dropping EOL Node.js version constraints from CI.
Scope:
- Bump
react-nativeto0.85.0-rc.0 - Search the codebase for all usages of
StyleSheet.absoluteFilland replace withStyleSheet.absoluteFillObjector inline styles - Update CI Node.js version matrix to remove EOL versions (Node 18 and below)
- Run the full test suite and smoke test on iOS and Android
- Document migration notes in the project README
Out of scope: Production release with an RC version, addressing other deprecations not in 0.85.
Dependencies: React Native 0.84 currently installed, Xcode ≥ 15.3, Android Studio Meerkat.
Acceptance criteria:
- App builds and runs on both platforms with zero references to
StyleSheet.absoluteFill - CI pipeline runs on Node 20+ only
- All existing automated tests pass
- No visual regressions on the 5 most-used screens (verified by a non-technical stakeholder)
Estimated effort: S
⚛️ Chunk 5 — Upgrade to Vite 8.0 (Rolldown, Oxc, No Babel)
Goal: Upgrade the web companion app / toolchain to Vite 8.0 to benefit from dramatically faster builds via the Rolldown bundler and Oxc transforms, with Babel fully removed from the default pipeline.
Scope:
- Bump
viteto^8.0.0and@vitejs/plugin-reactto^6.0.0 - Remove explicit
@babel/coreandbabel-*dependencies that are no longer needed - Run a build and verify bundle output is equivalent to the previous version
- Benchmark cold build time before and after the upgrade
- Update CI cache keys if needed
Out of scope: Migrating custom Babel transforms to Oxc (handle in a follow-up), changes to the React Native Metro bundler.
Dependencies: Node.js ≥ 20, existing Vite-based web build (e.g. Expo web, Storybook, or documentation site).
Acceptance criteria:
vite buildcompletes successfully with no Babel dependency innode_modules/.vite- Cold build time is measurably faster (benchmark logged in the PR description)
- All CI checks pass and bundle output passes visual diff against the previous build
- A developer can confirm the upgrade by running
vite --versionand seeing 8.x
Estimated effort: S