{"collection":{"slug":"frontend-frameworks","name":"Frontend Frameworks"},"digest":{"id":"cwd_B766uwtkEy_k6fjiA1-R2","weekStart":"2026-06-29","title":"Expo SDK 57 lands with a promise of simpler upgrades","intro":"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.","body":"### A non-breaking Expo SDK upgrade\n\nThe biggest story of the week comes from Expo: [SDK 57](/release/rel_aH7NaXbDXMlY2_I-Ak0D0-expo-sdk-57-upgrades-to-react-native-0-86-with-no-breaking-changes) 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`.\n\nSupporting the SDK, [EAS CLI v20.5.1](/release/rel_NbY1xO7psLs0xIms_5LXS-eas-cli-v20-5-1-fixes-false-build-limit-warnings-for-free-plan-users) 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](/release/rel_4QlP_A3QZQGkZRpocLmBR-v20-5-0) added support for connecting existing PostHog user accounts via `eas integrations:posthog:connect`.\n\n### Server Actions, HMR, and SWC patches in Next.js canaries\n\nNext.js had a busy week across several canary releases. The most impactful fix came in [canary.76](/release/rel_RtGvk8Kx07JmuUmENmr4U-next-js-v16-3-0-canary-76-fixes-server-action-navigation-reversion-and-metadata): 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.\n\nIn [canary.77](/release/rel_aK55BrkZDneFCtuLDMqGV-next-js-v16-3-0-canary-77-improves-dev-rendering-and-fixes-swc-compression), 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+.\n\nThe headliner feature of the week, however, is in [canary.78](/release/rel_sHk7t2uWOTb6tzTTjcvNO-next-js-v16-3-0-canary-78-adds-servercomponentshmrcancellation-flag): 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.\n\nTwo patch releases — [v15.5.20](/release/rel_sGsdpGPJWLK-m_fdvmw0V-next-js-v15-5-20-restores-next-swc-wasm-web-publishing) and [v16.2.10](/release/rel_Pf3RYys0GJ4f9afCiTbSx-next-js-v16-2-10-restores-next-swc-wasm-web-publishing) — 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.\n\n### SvelteKit configuration gets simpler\n\n[Svelte's July update](/release/rel_W9mWXQ1eovJ1Vz2rHJrzN-what-s-new-in-svelte-july-2026) 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.","releaseIds":["rel_aH7NaXbDXMlY2_I-Ak0D0","rel_NbY1xO7psLs0xIms_5LXS","rel_4QlP_A3QZQGkZRpocLmBR","rel_RtGvk8Kx07JmuUmENmr4U","rel_aK55BrkZDneFCtuLDMqGV","rel_sHk7t2uWOTb6tzTTjcvNO","rel_sGsdpGPJWLK-m_fdvmw0V","rel_Pf3RYys0GJ4f9afCiTbSx","rel_W9mWXQ1eovJ1Vz2rHJrzN"],"releaseCount":10,"generatedAt":"2026-07-11T16:41:28.370Z","releases":[{"id":"rel_aH7NaXbDXMlY2_I-Ak0D0","title":"Expo SDK 57 upgrades to React Native 0.86 with no breaking changes","path":"/release/rel_aH7NaXbDXMlY2_I-Ak0D0-react-native-0-86-with-no-breaking-changes-prebuild-now-clears-native-dirs","org":{"slug":"expo","name":"Expo"},"importance":null},{"id":"rel_NbY1xO7psLs0xIms_5LXS","title":"EAS CLI v20.5.1 fixes false build limit warnings for Free plan users","path":"/release/rel_NbY1xO7psLs0xIms_5LXS-free-plan-build-limit-warnings-fixed-tvos-build-target-fix","org":{"slug":"expo","name":"Expo"},"importance":null},{"id":"rel_4QlP_A3QZQGkZRpocLmBR","title":"v20.5.0","path":"/release/rel_4QlP_A3QZQGkZRpocLmBR-v20-5-0","org":{"slug":"expo","name":"Expo"},"importance":null},{"id":"rel_RtGvk8Kx07JmuUmENmr4U","title":"Next.js v16.3.0-canary.76 fixes Server Action navigation reversion and metadata title drops","path":"/release/rel_RtGvk8Kx07JmuUmENmr4U-server-action-no-longer-reverts-nav-metadata-titles-survive-soft-navigation","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_aK55BrkZDneFCtuLDMqGV","title":"Next.js v16.3.0-canary.77 improves dev rendering and fixes SWC compression","path":"/release/rel_aK55BrkZDneFCtuLDMqGV-dev-rendering-optimized-swc-compress-workaround-added","org":{"slug":"vercel","name":"Vercel"},"importance":2},{"id":"rel_sHk7t2uWOTb6tzTTjcvNO","title":"Next.js v16.3.0-canary.78 adds serverComponentsHmrCancellation flag","path":"/release/rel_sHk7t2uWOTb6tzTTjcvNO-servercomponentshmrcancellation-experimental-flag","org":{"slug":"vercel","name":"Vercel"},"importance":1},{"id":"rel_sGsdpGPJWLK-m_fdvmw0V","title":"Next.js v15.5.20 restores @next/swc-wasm-web publishing","path":"/release/rel_sGsdpGPJWLK-m_fdvmw0V-next-js-v15-5-20-restores-next-swc-wasm-web-publishing","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_Pf3RYys0GJ4f9afCiTbSx","title":"Next.js v16.2.10 restores @next/swc-wasm-web publishing","path":"/release/rel_Pf3RYys0GJ4f9afCiTbSx-next-js-v16-2-10-restores-next-swc-wasm-web-publishing","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_W9mWXQ1eovJ1Vz2rHJrzN","title":"What’s new in Svelte: July 2026","path":"/release/rel_W9mWXQ1eovJ1Vz2rHJrzN-what-s-new-in-svelte-july-2026","org":{"slug":"svelte","name":"Svelte"},"importance":null}]}}