<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf" -->

---
title: SvelteKit 3 is here | daily.dev
description: SvelteKit 3.0 has shipped, bringing polish, better type safety, and cleaner code without major conceptual shifts for existing users. The 'sv migrate' CLI...
canonical: https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: SvelteKit 3 is here | daily.dev
og:description: SvelteKit 3.0 has shipped, bringing polish, better type safety, and cleaner code without major conceptual shifts for existing users. The 'sv migrate' CLI...
og:url: https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf
og:image: https://api.daily.dev/og/posts/FrA64q0tf.png
og:image:alt: SvelteKit 3 is here
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# SvelteKit 3 is here

**[Svelte Blog](https://daily.dev/sources/svelte)** · 2 min read · 1 upvotes · 0 comments

## Summary

SvelteKit 3.0 has shipped, bringing polish, better type safety, and cleaner code without major conceptual shifts for existing users. The 'sv migrate' CLI automates most of the upgrade, flagging remaining tasks in a TODO list. Key changes include configuration moving from svelte.config.js to vite.config.ts, the $lib alias becoming #lib via standard subpath imports, improved environment variable handling, simplified service workers, and better error handling across the board. Remote functions, a new client-server communication feature, remain experimental and require Async Svelte. Svelte Summit takes place November 19-20 in Ljubljana, also marking Svelte's 10th anniversary.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://svelte.dev/blog/sveltekit-3-is-here>

## Questions this post answers

### What breaking changes come with SvelteKit 3.0?

SvelteKit 3.0 moves configuration from svelte.config.js to vite.config.ts, renames the $lib alias to #lib using standard Node.js subpath imports, and overhauls environment variables, service workers, and error handling. Migration can be automated with the sv migrate CLI command, which updates most of the codebase and generates a TODO list for anything it can't handle automatically.

_daily.dev keeps developers upgrading SvelteKit codebases aware of breaking changes before they ship._

### Are remote functions ready to use in SvelteKit 3?

No, remote functions are not yet production-ready in SvelteKit 3.0 despite being a top priority for the team. They provide secure, efficient, type-safe client-server communication but currently require Async Svelte, which itself needs an experimental flag to enable.

_Developers evaluating new SvelteKit features can track remote functions' readiness on daily.dev._

### How do I migrate an existing SvelteKit project to version 3?

Run 'npx sv migrate sveltekit-3 --tasks all --confirm' to automatically migrate as much of the codebase as possible. The command generates a TODO list for anything it cannot handle automatically, covering changes like the config file move and the $lib to #lib alias rename detailed in the official migration guide.

_Teams planning a SvelteKit upgrade can follow migration guidance like this on daily.dev._

## Similar posts on daily.dev

- [The SvelteKit 3 Release Candidate is here](https://daily.dev/posts/the-sveltekit-3-release-candidate-is-here-lootbllps) · Svelte Blog · 72 upvotes · 5 comments
- [What’s new in Svelte: July 2026](https://daily.dev/posts/what-s-new-in-svelte-july-2026-yjmmqqvqz) · Svelte Blog · 50 upvotes · 4 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#vite](https://daily.dev/tags/vite), [#svelte](https://daily.dev/tags/svelte), [#sveltekit](https://daily.dev/tags/sveltekit)

[View this post on daily.dev](https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"SvelteKit 3 is here","url":"https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf"},"datePublished":"2026-10-01T19:59:20.485Z","dateModified":"2026-10-02T01:51:12.283Z","description":"SvelteKit 3.0 has shipped, bringing polish, better type safety, and cleaner code without major conceptual shifts for existing users. The 'sv migrate' CLI...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c7428f2545182564219b7bc899817a5c?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/c7428f2545182564219b7bc899817a5c?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Svelte Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Svelte Blog","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/28300f110fce4397bb4b78124a45ae29","url":"https://daily.dev/sources/svelte"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"javascript,vite,svelte,sveltekit","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Svelte Blog","item":"https://daily.dev/sources/svelte"},{"@type":"ListItem","position":3,"name":"SvelteKit 3 is here"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/sveltekit-3-is-here-fra64q0tf#faq","mainEntity":[{"@type":"Question","name":"What breaking changes come with SvelteKit 3.0?","acceptedAnswer":{"@type":"Answer","text":"SvelteKit 3.0 moves configuration from svelte.config.js to vite.config.ts, renames the $lib alias to #lib using standard Node.js subpath imports, and overhauls environment variables, service workers, and error handling. Migration can be automated with the sv migrate CLI command, which updates most of the codebase and generates a TODO list for anything it can't handle automatically. daily.dev keeps developers upgrading SvelteKit codebases aware of breaking changes before they ship."}},{"@type":"Question","name":"Are remote functions ready to use in SvelteKit 3?","acceptedAnswer":{"@type":"Answer","text":"No, remote functions are not yet production-ready in SvelteKit 3.0 despite being a top priority for the team. They provide secure, efficient, type-safe client-server communication but currently require Async Svelte, which itself needs an experimental flag to enable. Developers evaluating new SvelteKit features can track remote functions' readiness on daily.dev."}},{"@type":"Question","name":"How do I migrate an existing SvelteKit project to version 3?","acceptedAnswer":{"@type":"Answer","text":"Run 'npx sv migrate sveltekit-3 --tasks all --confirm' to automatically migrate as much of the codebase as possible. The command generates a TODO list for anything it cannot handle automatically, covering changes like the config file move and the $lib to #lib alias rename detailed in the official migration guide. Teams planning a SvelteKit upgrade can follow migration guidance like this on daily.dev."}}]}
```

