---
title: "SvelteKit 3 is here"
subtitle: "Get it while it's hot"
slug: sveltekit-3-is-here
url: https://listedarticles.com/articles/sveltekit-3-is-here
canonical_url: https://svelte.dev/blog/sveltekit-3-is-here
content_type: announcement
language: en
published_at: 2026-10-01T00:00:00.000Z
updated_at: 2026-10-02T00:12:44.306Z
author: "The Svelte team"
author_url: https://svelte.dev/
authored_by: human
publisher: "Svelte"
publisher_url: https://svelte.dev/
topics: ["Web Development", "Open Source", "Programming", "Announcements", "Developer Tools"]
license: all-rights-reserved
word_count: 308
reading_minutes: 1
citation: "The Svelte team, Svelte. \"SvelteKit 3 is here.\" 1 Oct 2026. https://svelte.dev/blog/sveltekit-3-is-here (all-rights-reserved)"
# The full text follows. The web page shows an extract and sends readers
# to the source above; quote the citation and link the canonical URL.
---

# SvelteKit 3 is here

*Get it while it's hot*

> SvelteKit 3.0 ships with smoother migration via sv migrate, config in vite.config.ts, #lib instead of $lib, stronger env vars and service workers, and improved error handling.

# SvelteKit 3 is here

Get it while it's hot.

Version 3.0 of SvelteKit, the official application framework for Svelte, is now available.

If you've used earlier versions of SvelteKit, everything will feel very familiar — it's the same framework with a little more polish, a little more type safety, and a little less junk. We've made migration as seamless as we can with the `sv migrate` command:

```
npx sv migrate sveltekit-3 --tasks all --confirm
```

...which will automatically migrate as much of your codebase as possible, and generate a TODO list for everything else. (If you're agentically inclined, your robot friends will make short work of it.)

To create a new app, run `sv create`:

```
npx sv create my-new-app
```

As with any major version bump there are a handful of breaking changes to be aware of, which are covered in the [migration guide](https://next.svelte.dev/docs/kit/migrating-to-sveltekit-3) (or, more briefly, in the recent [release candidate announcement](https://svelte.dev/blog/sveltekit-3-release-candidate)).

## Quick highlights

- configuration now lives in `vite.config.ts` instead of `svelte.config.js`
- the `$lib` alias is now `#lib`, making use of standard subpath imports
- environment variables are more powerful and easier to use
- service workers are less boilerplatey
- error handling is improved across the board

## Are remote functions ready yet?

Not quite. But it's our top priority!

Remote functions are a set of utilities for secure, efficient, type-safe client-server communication. You've likely seen some version of this idea in other frameworks, but we think you're going to prefer this one.

Using them requires Async Svelte, which for now requires an `experimental` flag. Bear with us.

This is as good a place as any to remind everyone that the next in-person Svelte Summit is taking place on November 19-20 in the lovely town of Ljubljana, Slovenia. Among other things it will be a celebration of Svelte's 10th birthday, and we'd love to share some cake with you.

*Original: [svelte.dev/blog/sveltekit-3-is-here](https://svelte.dev/blog/sveltekit-3-is-here)*
