releases.shpreview
Home/Collections/Frontend Frameworks/Week of June 29, 2026

Expo SDK 57 lands with a promise of simpler upgrades

June 29 – July 5, 2026

Expo SDK 57 ships with React Native 0.86 in a release designed to have zero breaking changes, while Next.js continues its canary cadence with Server Action fixes and HMR improvements. Svelte's July update previews a simpler project config model.

A non-breaking Expo SDK upgrade

The biggest story of the week comes from Expo: SDK 57 upgrades the underlying React Native version from 0.85 to 0.86, and the team explicitly designed this release to introduce no breaking changes. For developers who have braced through past SDK migrations, this is a notable shift — Expo is exploring a new cadence where smaller, safer upgrades ship between the more significant releases. Alongside the RN bump, Expo prebuild now clears and regenerates the native android/ and ios/ directories by default, which should eliminate a common class of stale-native-project bugs. The release also bundles improvements to edge-to-edge Android support, DevTools dark mode, and new cache APIs in expo-image.

Supporting the SDK, EAS CLI v20.5.1 fixes a frustrating false-positive: Free plan users were being warned about hitting their build limit while still well below it. Overage warnings now only fire for paid plans with actual billable overage. The same release also fixes tvOS build target selection for non-interactive Apple builds when the EXPO_TV env variable is set. An earlier v20.5.0 added support for connecting existing PostHog user accounts via eas integrations:posthog:connect.

Server Actions, HMR, and SWC patches in Next.js canaries

Next.js had a busy week across several canary releases. The most impactful fix came in canary.76: navigation being reverted while a Server Action was in flight is now corrected, and metadata titles no longer drop on soft navigation when Cache Components are involved. The same release also fixes history pushes being treated as replaces when followed by a refresh, and eliminates a false-positive nested-cache error for short default cache profiles.

In canary.77, the team added a workaround for an SWC compression bug that could cause issues in production builds, and avoided unnecessary rendering for validation checks in dev mode, which should speed up the development feedback loop. The release also updates form handling documentation to reflect SubmitEvent deprecations in React 19.2.10+.

The headliner feature of the week, however, is in canary.78: a new serverComponentsHmrCancellation experimental flag. This flag is designed to cancel in-flight HMR updates when a new one arrives, which should reduce flickering and stale state during fast-paced development iterations — a quality-of-life improvement for anyone who spends their day hot-module-reloading Server Components.

Two patch releases — v15.5.20 and v16.2.10 — restore publishing of the @next/swc-wasm-web package that had been accidentally omitted since earlier releases. No functional changes, but critical for anyone depending on that WASM target.

SvelteKit configuration gets simpler

Svelte's July update previews a significant simplification: you can now define your SvelteKit config directly inside vite.config.js, skipping svelte.config.js entirely. This aligns SvelteKit more closely with the broader Vite ecosystem, where the project's main config file is the single source of truth. The post also flags an upcoming first preview of explicit environment variables that will eventually replace $env/* modules in SvelteKit 3. On the tooling side, the language tools and sv CLI have caught up with Svelte's new {const ...} declaration tags, so the full toolchain now supports the feature.

Releases covered