SvelteKit 3 puts heat on Next.js with radical approach to RPCs
In today's sprawling JavaScript ecosystem, Svelte was designed to be a simpler alternative to the React.js front-end framework, and SvelteKit follows the same path, setting out to be a backend framework like Next.js but with fewer headaches and even better support for dynamic content.
The new-ish SvelteKit 3.0 release candidate includes an experimental feature called remote functions that rethinks how data is delivered to the browser.
“Remote functions make everything else look a bit clunky, including SvelteKit’s load functions and actions,” the project team enthused in the release candidate announcement page.
REG AD
A slender stack
REG AD
U.K. journalist Rich Harris, then a graphics editor at the New York Times, released Svelte 1.0 in 2016 as a JavaScript component builder that didn’t carry all the boilerplate that lumbered React.js. He needed an easier way to build graphical components for NYT online stories.
Unlike React, Svelte compiled its code ahead of time, and shipped to the user without much accompanying framework. The fact that Svelte builds components from standard HTML elements also lightens the cognitive overhead for the developer.
SvelteKit grew from Svelte to manage back-end chores, such as routing, rendering, and streamlining pages, all in a manner befitting Svelte’s simplicity.
SvelteKit has been nipping at Next.js’ heels for a while. A recent benchmark found that SvelteKit’s Server Side Rendering (SSR) function returned an HTML payload three times smaller than Next.js for an equivalent product page — great news for performance-minded web shops.
SvelteKit’s remote functions is another method that minimizes overhead – one so radical that adherents say it could disrupt the landscape of remote procedure calls (RPCs). It has been an experimental release since SvelteKit 2.27, though the upcoming v3 will embrace remote functions alongside its traditional load functions as equals (assuming the remaining bugs are sorted).
Type-safe data fetching, no page refresh required
Remote functions provide a way for individual components on a web page to update their data from the server, without refreshing the page as a whole.
This limitation has been a real bummer for coders, who have had to come up with various ways around this issue, but their solutions have tended to be hacky and they often lose type safety in the process.
REG AD
“This is our take on RPCs,” explained Vercel Svelte core developer Simon Holthausen, in a Svelte Society podcast.
Server-side, SvelteKit does the typical RPC stuff: validating incoming data requests, querying the database or other data source, and routing the serialized results back to the requesting component.
The remote function, written in JavaScript or TypeScript, and compiled beforehand into a lightweight client-side RPC wrapper, performs a fetch call to the server from within the component itself. No special routing or additional boilerplate is required.
“You don’t have to worry about where this code is running,“ said developer Scott Tolinski in an episode of a Syntax developer videocast enthusiastically entitled “SvelteKit has solved data loading.”
The videocast hosts offered as an example a case where all the content on a site is static, except for a footer on the bottom of each page, which requires updated information.
With remote functions, the footer component fetches and refreshes its own server data directly, keeping the data fresh. Traditionally, this would require the whole page either to be marked as dynamic (computationally costly, slow to load) or require the developer to write a top-down route loader (more brainwork, keystroking).
“From within a normal Svelte component, you can just straight up import that query or mutation as a function, then call that function in your code,” Tolinski explained.
The call is coming from within the client
REG AD
To be fair, the maintainers of Next.js have also addressed part of this problem with Server Functions (formerly called Server Actions), which allow client components to invoke server-side mutations directly. However, unlike SvelteKit's remote functions, Next.js Server Functions were primarily designed for writing data rather than fetching or querying it.
MORE CONTEXT
- Almost nobody pays attention to web standards anymore
- Node.js creator liberates Durable Objects from Cloudflare
- Next.js 16.3 aims to reduce dreaded FATAL ERROR messages
- Dev who gave HashiCorp its name returns with a faster terminal multiplexer
- HTTP gets a QUERY method so complex searches can stop pretending to be POST
-
AI and ml Google buys crashed airline Spirit’s data at auction, because AI
-
AI and Ml Excel's Copilot function is headed for the Recycle Bin
-
DEVOPS GitHub has Issues as repo downloads hit 50% error rate
-
ofbeat NASA estimates the size of the hole SpaceX made in the moon
-
security Expired credit cards revived by researchers to make unauthorized payments
-
software Microsoft MVP creates site to remind you of all the brands Redmond replaced - Google pits Marvell against Broadcom as it chases AI crown And Marvell just offered the Chocolate Factory a $12.2B stake to sweeten the deal
- SYSTEMS Cerebras CS-4 rack systems juice chips for every last drop of AI performance Next-gen systems double per-chip performance while cramming 3x as many into a rack
- Security Copilot tricked into telling reseachers how to hack itself How to social engineer an AI's reasoning engine
- AI and ml Payments giant Stripe is about to drop over $7 billion to become a gateway to AI token sales AI gateways look promising as companies struggle with model orchestration
- ai and ml Anthropic says text watermarking scheme relies on inconsequential words 'Shall I compare thee to a summer's afternoon' is the sort of thing this will make, and others look likely to adopt it
- Security Russians are posing as Signal support to launch phishing attacks PLUS: US takes down Iranian propaganda sites; Marketing company asks 'Why Do We Have Your Information?' And more!
- Security Microsoft patches failed to fix on-prem SharePoint, which is now under zero-day attack PLUS: China upgrades smartphone surveillance tools; Ring eases anti-snooping stance; and more
- Black Hat and DEF CON DEF CON Franklin project enlists hackers to harden critical infrastructure Voting village reports have been so successful, says Jeff Moss, that the whole of DEF CON will now be included
- Security EQT buys majority share in Swiss cybersecurity biz Acronis Went at equivalent of $3.5B+ valuation for entire firm, though portion sold not specified
- Malware Month Ten years since the first corp ransomware, Mikko Hyppönen sees no end in sight On the plus side, infosec's a good bet for a long, stable career
- FOSS smashed one Microsoft monopoly. After 20 years of failure, it's time to smash another Word up
- GNOME can look like Windows – and Flashback can do it without extensions New 'Simple-taskbar' is an option, but there's a simpler, stabler way
- A moment of silence, please, for the final release of Debian on x86-32 New Debian versions hit FOSSland in the form of 13.6 and 12.15
- Baddies caught exploiting extensions bugs with perfect 10 scores on vulnerable Joomla websites Flaws in iCagenda, Balbooa Forms extensions can impact open source CMS that powers a million sites worldwide
- Frame: A new X11 server – implemented directly in assembly Joins yserver, Phoenix, and of course XLibre – and outlier Arcan
- Cinnamon 6.8 will support Wayland – if you want it Next version of Linux Mint’s desktop has both kinds of display server
Harris now works at Vercel, which sponsors Svelte but owns Next.js. Nonetheless, Vercel supports both approaches, each of which reflects “a broader convergence toward typed, server-side functions callable from the client,” a Vercel spokesperson told us.
For Tolinski, though, the upside to Svelte’s remote functions is how seamlessly they fit into the overall Svelte framework.
“I’m not saying no other RPC systems have done it as good as this, but it better be as good as this if you want me to use it,” he said. ®
[](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F08%2F19%2Fsveltekit-3-puts-heat-on-nextjs-with-radical-approach-to-rpcs%2F5289925) [](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F08%2F19%2Fsveltekit-3-puts-heat-on-nextjs-with-radical-approach-to-rpcs%2F5289925) [](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F08%2F19%2Fsveltekit-3-puts-heat-on-nextjs-with-radical-approach-to-rpcs%2F5289925) [](https://bsky.app/intent/compose?text=SvelteKit%203%20puts%20heat%20on%20Next.js%20with%20radical%20approach%20to%20RPCs%0Ahttps%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F08%2F19%2Fsveltekit-3-puts-heat-on-nextjs-with-radical-approach-to-rpcs%2F5289925) [](https://www.reddit.com/submit?url=https%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F08%2F19%2Fsveltekit-3-puts-heat-on-nextjs-with-radical-approach-to-rpcs%2F5289925&title=SvelteKit%203%20puts%20heat%20on%20Next.js%20with%20radical%20approach%20to%20RPCs) [](https://api.whatsapp.com/send?text=SvelteKit%203%20puts%20heat%20on%20Next.js%20with%20radical%20approach%20to%20RPCs%0Ahttps%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F08%2F19%2Fsveltekit-3-puts-heat-on-nextjs-with-radical-approach-to-rpcs%2F5289925)
REG AD


