· via Hacker News – Front Page (hnrss.org)
SvelteKit 3.0 arrives with config in Vite, #lib imports and guided migration
SvelteKit 3.0 moves configuration into vite.config.ts, swaps $lib for a standard #lib import, simplifies environment variables and ships an automated migration tool. Remote functions remain in progress.

SvelteKit 3.0 is out
SvelteKit 3.0, the newest major version of the official application framework for Svelte, is now available. According to the release announcement on the Svelte blog, which surfaced on the Hacker News front page, this is an evolutionary release rather than a rewrite: developers coming from earlier versions will find the same framework, with more polish, stronger type safety and less unnecessary baggage.
What changed
Five changes stand out in the release notes. Configuration now lives in vite.config.ts instead of svelte.config.js, folding SvelteKit's settings into the same file that drives the Vite build. The $lib alias has been replaced by #lib, which switches the framework over to standard subpath imports for library code. Environment variables have been made more capable and easier to work with. Service workers now require less boilerplate. And error handling has been improved across the board.
As with any major version bump, there are breaking changes to be aware of. The announcement directs developers to the full migration guide, with a shorter summary available in the earlier release candidate announcement.
Migration is automated where possible
To ease the upgrade, the team ships a dedicated migration command:
npx sv migrate sveltekit-3 --tasks all --confirm
The tool migrates as much of a codebase as it can automatically and then generates a TODO list covering whatever remains. The post adds a remark aimed at developers working with AI agents: the leftover TODO list is exactly the kind of work those "robot friends", in the team's phrasing, can churn through quickly. brand-new projects can be started with sv create.
Remote functions are not ready yet
One widely anticipated feature did not make this release. Remote functions — a toolkit the team describes as enabling secure, efficient and type-safe communication between the client and the server — are "not quite" ready, but they are the project's stated top priority. The idea echoes facilities already offered by other frameworks, though the Svelte team expects its implementation to be the more pleasant one to use. Remote functions depend on Async Svelte, which for now sits behind an experimental flag.
Svelte Summit in November
The announcement also confirms that the next in-person Svelte Summit takes place on November 19–20 in Ljubljana, Slovenia, where the community will celebrate Svelte's tenth birthday.
Why it matters
SvelteKit is the default way to build applications with Svelte, so even a modest major release touches a large share of the framework's users. The substance of this one is telling: the headline changes — consolidating configuration in vite.config.ts, adopting standard subpath imports with #lib, tidier environment variables and leaner service workers — are about aligning SvelteKit with broader ecosystem conventions rather than maintaining a proprietary layer on top of them. That lowers the entry barrier for developers arriving from other stacks and shrinks the set of framework-specific concepts existing users must keep in mind.
The migration tooling matters just as much. Automatic migration paired with a generated TODO list reduces the cost of staying current, and the team's nod to AI agents acknowledges how many maintainers now run upgrades with coding assistants in the loop.
The state of remote functions, meanwhile, signals where the project goes next. Type-safe client-server communication has become table stakes among modern application frameworks, and Svelte's version, tied to the experimental Async Svelte work, is not yet generally available. Teams comparing SvelteKit against rivals that already ship this capability will have to wait, but its designation as the top priority suggests the gap is intended to be short-lived.
- #svelte
- #sveltekit
- #web-framework
- #javascript
- #typescript