{"collection":{"slug":"frontend-frameworks","name":"Frontend Frameworks"},"digest":{"id":"cwd_5SuGNZbMHgmLXX-l9mgP6","weekStart":"2026-05-25","title":"Svelte unleashes template declarations, Expo opens MCP to all","intro":"Svelte 5.56 added the ability to write declarations directly in templates, SvelteKit introduced a real-time query function for live data, and Expo dropped the Expo MCP Server onto the Free plan, making AI-assisted development accessible without a paid account.","body":"### Svelte’s template declarations and live queries\n\nThe Svelte ecosystem delivered two standout features this week. [Svelte 5.56](/release/rel_K7tCJdqPGyuMSj86hPNDD-svelte-5-56-0) now allows declarations directly in templates — a long-requested capability that lets developers write `{#let count = 0}` inline rather than always reaching for `<script>`. The same release brings meaningful performance wins: Svelte uses `createElement` instead of `createElementNS` for HTML elements, converts internal source tracking to a `Set` for O(1) membership checks, and deduplicates identical hoisted templates within a component. A pair of patch releases followed, with [svelte@5.55.10](/release/rel_EN9yEUtAPpVSVZ-2J6BJG-svelte-5-55-10) fixing batch effect transfer and unlink issues, and patching `$derived(await ...)` in disconnected effect roots.\n\nOn the framework side, [the Svelte blog](/release/rel_pS9rXhjgPjBlIPTxIkor3-what-s-new-in-svelte-june-2026) rounded up June’s SvelteKit additions, headlined by a new query function `.live(...)` that makes real-time server data accessible with minimal ceremony. Forms also got attention: `submit` now returns a boolean indicating validity for enhanced forms. The post warns of a few breaking changes in remote functions for anyone already using them.\n\n### Next.js: optimizer rename and canary cleanup\n\nVercel shipped six canary releases during the week, mostly small fixes and internal refactors — but one structural change stands out. Next.js [v16.3.0-canary.29](/release/rel_MPCGG-H0_hRNilJSX-lXI-next-js-v16-3-0-canary-29-replaces-ppr-optimizer-with-cache-components-optimizer) replaced the `next-ppr-optimizer` with a `next-cache-components-optimizer`, a renaming that signals a broader shift toward the cache-components architecture. The same canary also made dev loop login state persist across loops and fixed the errors.json merge driver to handle gaps in error codes.\n\nOther notable fixes across the canary chain include a [Firefox refresh loop](/release/rel_80rQvHGuCHT49pX2svrb0-next-js-v16-3-0-canary-30-fixes-firefox-refresh-loop-in-dev-streaming) fixed in initial load of streaming pages in dev mode, a [`'use cache'` bail-out regression](/release/rel_UW8iELq9bwEuCy76PVr4X-next-js-v16-3-0-canary-33-fixes-use-cache-bail-out-and-streaming-prerender) patched under `unstable_instant = false`, and short-circuit evaluation of AND/OR operators [fixed in the Turbopack analyzer](/release/rel_3SUUiBYlKBNPRKLlvAzEa-next-js-v16-3-0-canary-32-fixes-turbopack-short-circuit-evaluation-and) for string and nullish-related methods. Later canaries added an [experimental image optimization operation cache](/release/rel_vfXVCVfwJwlY4GQcRLT66-next-js-v16-3-0-canary-34-adds-experimental-image-optimization-operation-cache) and improved [Turbopack’s error handling](/release/rel_Qznt4lAErL5rtiP6pB7FS-next-js-v16-3-0-canary-36-improves-turbopack-analyzer-and-cli-error-handling) on CLI failures.\n\n### Expo opens MCP to Free plan and ships EAS CLI v20\n\nThe biggest news for Expo this week is that [the Expo MCP Server](/release/rel_eH0AGZtNj4qgf--YeQrF9-the-expo-mcp-server-is-now-available-on-the-free-plan) is now available on the Free plan. Previously restricted to paid accounts, the server lets AI coding assistants interact directly with an Expo project — and now any developer can use it without a subscription. Monthly MCP usage is included for Free accounts.\n\nOn the tooling side, [EAS CLI v20.0.0](/release/rel_OO_tgLc1FxtKcPCMDIlQx-v20-0-0) landed with breaking renames to the observe commands: `observe:logs` becomes `observe:events`, the old `observe:events` becomes `observe:metrics`, and the old `observe:metrics` becomes `observe:metrics-summary`. The `eas go` command now prompts you to select an Expo SDK version. A smaller [v19.1.0](/release/rel_0t8u3BiKk4k7BsJBWm6Dx-v19-1-0) release added a `--refresh-ad-hoc-provisioning-profile` flag for iOS builds in non-interactive mode.","releaseIds":["rel_K7tCJdqPGyuMSj86hPNDD","rel_EN9yEUtAPpVSVZ-2J6BJG","rel_pS9rXhjgPjBlIPTxIkor3","rel_MPCGG-H0_hRNilJSX-lXI","rel_80rQvHGuCHT49pX2svrb0","rel_UW8iELq9bwEuCy76PVr4X","rel_3SUUiBYlKBNPRKLlvAzEa","rel_vfXVCVfwJwlY4GQcRLT66","rel_Qznt4lAErL5rtiP6pB7FS","rel_eH0AGZtNj4qgf--YeQrF9","rel_OO_tgLc1FxtKcPCMDIlQx","rel_0t8u3BiKk4k7BsJBWm6Dx"],"releaseCount":14,"generatedAt":"2026-07-11T16:47:14.175Z","releases":[{"id":"rel_K7tCJdqPGyuMSj86hPNDD","title":"svelte@5.56.0","path":"/release/rel_K7tCJdqPGyuMSj86hPNDD-svelte-5-56-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_EN9yEUtAPpVSVZ-2J6BJG","title":"svelte@5.55.10","path":"/release/rel_EN9yEUtAPpVSVZ-2J6BJG-svelte-5-55-10","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_pS9rXhjgPjBlIPTxIkor3","title":"What’s new in Svelte: June 2026","path":"/release/rel_pS9rXhjgPjBlIPTxIkor3-what-s-new-in-svelte-june-2026","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_MPCGG-H0_hRNilJSX-lXI","title":"Next.js v16.3.0-canary.29 replaces PPR optimizer with cache components optimizer","path":"/release/rel_MPCGG-H0_hRNilJSX-lXI-ppr-optimizer-replaced-with-cache-components-optimizer","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_80rQvHGuCHT49pX2svrb0","title":"Next.js v16.3.0-canary.30 fixes Firefox refresh loop in dev streaming","path":"/release/rel_80rQvHGuCHT49pX2svrb0-firefox-refresh-loop-in-dev-streaming-fixed","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_UW8iELq9bwEuCy76PVr4X","title":"Next.js v16.3.0-canary.33 fixes use cache bail-out and streaming prerender","path":"/release/rel_UW8iELq9bwEuCy76PVr4X-use-cache-bail-out-fixed-streaming-prerender-stabilized","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_3SUUiBYlKBNPRKLlvAzEa","title":"Next.js v16.3.0-canary.32 fixes Turbopack short-circuit evaluation and instrumentation","path":"/release/rel_3SUUiBYlKBNPRKLlvAzEa-turbopack-short-circuit-evaluation-and-instrumentation-fixed","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_vfXVCVfwJwlY4GQcRLT66","title":"Next.js v16.3.0-canary.34 adds experimental image optimization operation cache","path":"/release/rel_vfXVCVfwJwlY4GQcRLT66-experimental-image-optimization-operation-cache-flag-added","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_Qznt4lAErL5rtiP6pB7FS","title":"Next.js v16.3.0-canary.36 improves Turbopack analyzer and CLI error handling","path":"/release/rel_Qznt4lAErL5rtiP6pB7FS-turbopack-analyzer-expanded-cli-reports-typegen-failures-clearly","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_eH0AGZtNj4qgf--YeQrF9","title":"The Expo MCP Server is now available on the Free plan","path":"/release/rel_eH0AGZtNj4qgf--YeQrF9-the-expo-mcp-server-is-now-available-on-the-free-plan","org":{"slug":"expo","name":"Expo"},"importance":null},{"id":"rel_OO_tgLc1FxtKcPCMDIlQx","title":"v20.0.0","path":"/release/rel_OO_tgLc1FxtKcPCMDIlQx-v20-0-0","org":{"slug":"expo","name":"Expo"},"importance":null},{"id":"rel_0t8u3BiKk4k7BsJBWm6Dx","title":"v19.1.0","path":"/release/rel_0t8u3BiKk4k7BsJBWm6Dx-v19-1-0","org":{"slug":"expo","name":"Expo"},"importance":null}]}}