The SvelteKit 3 Release Candidate is here
10 points by cinemast
10 points by cinemast
Lots more churn in the ecosystem and new stuff to learn, but that's been par for the course in Svelte for as long as I've been using it. I think they actually enjoy maximizing breaking changes and lean into it with new releases.
That being said, a lot of these changes do look pretty cool. Compared to the Runes release where my initial reaction was very strongly against it (and I've still not grown to really like them or be comfortable using them compared to stores), almost all the changes here seem pretty useful and at least equivalent to current options.
One exception is the experimental "remote functions" that they mention: https://svelte.dev/docs/kit/remote-functions
These seem like pretty much a clone of server actions from Next.JS. I clearly remember watching that release presentation where they had an SQL query embedded in a React component and cringing out of my seat (https://youtu.be/gfU1iZnjRZM?si=8W7u7TqmGaqe1l9_&t=540)
Anyway, I'm biased though; I dislike Vercel and Next.JS for unrelated reasons.
That being said, the whole magical-auto-RPC thing still seems a bit too much to me, regardless of whether or not you're doing ugly concern separation violations like putting a raw SQL query right next to your flexbox styles.
I can at least see the potential appeal of this remote functions feature, though, and won't write it off completely without at least trying it out at some point.
That being said, I don't know if I have the heart to migrate my projects to yet another Svelte/kit version at this point. Although they've provided auto-migrators in the past to help with it, I've found that I still had to do a lot of manual work and verification, and deal with broken dependencies as well. Some of my projects still haven't made it to Svelte 5, which is a pre-req for Sveltekit 3.
I only use SvelteKit in static-adapter mode with mostly Go backends, because this whole auto backend/frontend/rpc/hydration thing is something I just can't grasp (and because I prefer Go on the backend).
My inital reaction towards Svelte 5 was the same for a very long time. However in one of my projects, which is really performance sensitive (rendering photo libraries with up to 500k items Svelte 5 runes really proved to be a game changer that allowed us to remove lots of manual hacks from the code.
Still, the breaking changes are annoying, but I haven't found a UI technology that made me feel comfortable using it and produces acceptable production build sizes.
i like everything about runes... except $props(), which works terribly with typescript, and the unwillingness to address that was enough to put me off upgrading :(