SvelteKit's June 2026 Releases Push Remote Functions Forward With Real-Time query.live and Breaking Changes Across Five Versions
SvelteKit shipped versions 2.57.0 through 2.61.0, advancing its experimental remote functions with a new query.live primitive and several breaking changes to queries and forms.
Overview
SvelteKit, the application framework built on the Svelte UI compiler, spent the past month concentrating its development on remote functions, a still-experimental feature for moving data between server and client. In the framework’s monthly roundup, published June 1, 2026 by Dani Sandoval, the Svelte team wrote that “this month we got a bunch of improvements in SvelteKit’s forms and remote functions,” alongside “a new query function (.live(...)) that makes accessing real-time data from the server easier,” according to the Svelte blog. The work landed across five SvelteKit releases, versions 2.57.0 through 2.61.0, and includes both new capabilities and breaking changes for early adopters.
What Remote Functions Are
Remote functions let developers call server-side code from the browser without hand-writing API routes. Per the SvelteKit documentation, they “are exported from a .remote.js or .remote.ts file, and come in four flavours: query, form, command and prerender.” The query function “allows you to read dynamic data from the server,” the form function “makes it easy to write data to the server,” and the command function works like form but, the docs note, “it’s not specific to an element and can be called from anywhere.” On the client, the documentation explains, “the exported functions are transformed to fetch wrappers that invoke their counterparts on the server via a generated HTTP endpoint.”
The feature has been available since SvelteKit 2.27, according to the SvelteKit documentation, which cautions that it “is currently experimental, meaning it is likely to contain bugs and is subject to change without notice.” Developers must opt in by enabling the compilerOptions.experimental.async and kit.experimental.remoteFunctions options in their configuration, the docs note.
What Shipped This Month
The headline addition is query.live, described in the documentation as a function “for accessing real-time data from the server” whose callback returns an AsyncIterable, according to the SvelteKit documentation. It arrived as an “experimental query.live function” in version 2.59.0, per the @sveltejs/kit changelog, and version 2.61.0 made “live query instances … themselves async-iterable,” the changelog records.
Forms also received attention. Version 2.57.0 added a feature to “return boolean from submit to indicate submission validity for enhanced form remote functions,” according to the @sveltejs/kit changelog. Version 2.60.0 brought two more form-related changes, allowing “‘submit’ and ‘hidden’ form fields to accept numbers and booleans” and adding a warning “on unread form remote function validation issues,” per the changelog.
Breaking Changes
Because remote functions remain experimental, the releases carried breaking changes that affect existing code. Version 2.58.0 made two: it now requires the limit parameter “in requested (as originally intended),” and requested “now yields { arg, query } entries instead of the validated argument,” according to the @sveltejs/kit changelog. The same version also gave RemoteQueryFunction “an optional third generic parameter Validated,” the changelog states.
The most significant break came in version 2.61.0, which removed “the .run() method … from remote queries on both the client and the server,” per the @sveltejs/kit changelog. In its place, “remote queries can now be awaited in any context (event handlers, module scope, async callbacks),” the changelog notes. The Svelte blog summarized the migration path, advising developers to “use await query() directly in all contexts instead,” according to the Svelte blog. Version 2.61.0 additionally added a “programmatic submit method to form remote function instances” and now passes the “form remote function instance into enhance callback,” the changelog records.
Beyond SvelteKit
The monthly update also covered the wider Svelte ecosystem. The Svelte compiler in svelte@5.56.0 now allows “declarations directly in markup,” and the Svelte language-tools “now support TypeScript 6.0,” according to the Svelte blog. The same post reported that Svelte’s MCP server gained a stdio mode that “can now read file content directly” in mcp@0.1.23, and that vite-plugin-svelte version 7.1.0 “now enables the optimizer for server environments during development,” per the Svelte blog.
What We Don’t Know
The Svelte team has not announced a date for stabilizing remote functions or removing the experimental opt-in flags, and the documentation continues to warn that the API is “subject to change without notice,” according to the SvelteKit documentation. The June releases do not indicate when, or whether, the query.live primitive will graduate out of its experimental status.