Svelte 5 release candidate (RC)

https://svelte.dev/blog/svelte-5-release-candidate

Svelte 5 is now in the Release Candidate phase. This means that the design of the framework is largely settled, with no anticipated breaking changes between now and the stable release, and that the most egregious bugs have been stomped.

It doesn’t mean that it’s ready for production, or that nothing will change between now and 5.0. But if you’ve held off on dabbling with Svelte 5 during the public beta phase, now is a great time to try it out. You can select the ‘Try the Svelte 5 preview’ option when starting a new SvelteKit project...

...or you can add Svelte 5 to an existing project...

npm install --save-dev svelte@next

...or you can tinker in the Svelte 5 Preview website.

I’m out of the loop. What’s Svelte 5?

For the last several months, we’ve been hard at work rewriting Svelte from the ground up to be faster, easier to use and more robust, applying the lessons we’ve collectively learned from several years of building apps with Svelte.

You can learn more about the new features from the preview documentation, and by watching the presentation from the most recent Svelte Summit:

What You Can Do For Your Framework

The highlights include:

  • runes, the new signal-powered reactivity API that sits at the heart of Svelte 5 and unlocks universal, fine-grained reactivity
  • overhauled event handling with less boilerplate and more flexibility
  • better component composition through snippets
  • native TypeScript support, including inside your markup

Will I need to rewrite everything?

Components written for Svelte 4 will continue to work with Svelte 5, with a handful of exceptions. If you install Svelte 5 in an existing app, the only real change should be that things get faster. If you maintain a Svelte app, we recommend updating to Svelte 5 as soon as it’s stable. (In the meantime, if you’re currently on Svelte 3 then you should update to Svelte 4.)

Eventually — in Svelte 6 or 7 — support for certain Svelte 4 features will be dropped in favour of their modern replacements. Because of that, we do encourage you to incrementally migrate your components (you can mix and match old and new components in the same app). We’ll release a command line tool for automating much of this migration, and you can try an experimental version of that tool in the playground by pasting in some Svelte 4 code and clicking the ‘migrate’ button.

When is the stable release?

When it’s done, and we’ve updated all the documentation. Bear with us!

{
"by": "benmccann",
"descendants": 17,
"id": 40212014,
"kids": [
40212500,
40219782,
40218444,
40233998,
40221702,
40231944,
40220065
],
"score": 32,
"time": 1714490553,
"title": "Svelte 5 release candidate (RC)",
"type": "story",
"url": "https://svelte.dev/blog/svelte-5-release-candidate"
}
{
"author": null,
"date": "2024-04-30T00:00:00.000Z",
"description": "We’re almost there",
"image": "https://svelte.dev/blog/svelte-5-release-candidate/card.png",
"logo": "https://logo.clearbit.com/svelte.dev",
"publisher": "Svelte",
"title": "Svelte 5 Release Candidate",
"url": "https://svelte.dev/blog/svelte-5-release-candidate"
}
{
"url": "https://svelte.dev/blog/svelte-5-release-candidate",
"title": "Svelte 5 Release Candidate",
"description": "Svelte 5 is now in the Release Candidate phase. This means that the design of the framework is largely settled, with no anticipated breaking changes between now and the stable release, and that the most...",
"links": [
"https://svelte.dev/blog/svelte-5-release-candidate"
],
"image": "https://svelte.dev/blog/svelte-5-release-candidate/card.png",
"content": "<div><p>Svelte 5 is now in the Release Candidate phase. This means that the design of the framework is largely settled, with no anticipated breaking changes between now and the stable release, and that the most egregious bugs have been stomped.</p>\n<p>It <em>doesn’t</em> mean that it’s ready for production, or that nothing will change between now and 5.0. But if you’ve held off on dabbling with Svelte 5 during the public beta phase, now is a great time to try it out. You can select the ‘Try the Svelte 5 preview’ option when starting a new SvelteKit project...</p>\n<p>...or you can add Svelte 5 to an existing project...</p>\n<div><pre><code><span><span>npm</span> <span>install</span> <span>--save-dev</span> <span>svelte@next</span></span></code></pre></div><p>...or you can tinker in the <a target=\"_blank\" href=\"https://svelte-5-preview.vercel.app/\">Svelte 5 Preview</a> website.</p>\n<h2 id=\"I'm-out-of-the-loop.-What's-Svelte-5\"><span>I’m out of the loop. What’s Svelte 5?</span><a target=\"_blank\" href=\"https://svelte.dev/blog/svelte-5-release-candidate#I'm-out-of-the-loop.-What's-Svelte-5\"></a></h2><p>For the last several months, we’ve been hard at work rewriting Svelte from the ground up to be faster, easier to use and more robust, applying the lessons we’ve collectively learned from several years of building apps with Svelte.</p>\n<p>You can learn more about the new features from the <a target=\"_blank\" href=\"https://svelte-5-preview.vercel.app/docs\">preview documentation</a>, and by watching the presentation from the most recent <a target=\"_blank\" href=\"https://www.sveltesummit.com/\">Svelte Summit</a>:</p>\n<div>\n<figure>\n<p>\n\t<iframe frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"></iframe>\n</p>\n<figcaption>What You Can Do For Your Framework</figcaption>\n</figure>\n</div>\n<p>The highlights include:</p>\n<ul>\n<li><a target=\"_blank\" href=\"https://svelte.dev/blog/runes\">runes</a>, the new signal-powered reactivity API that sits at the heart of Svelte 5 and unlocks <em>universal, fine-grained reactivity</em></li>\n<li>overhauled event handling with less boilerplate and more flexibility</li>\n<li>better component composition through <a target=\"_blank\" href=\"https://svelte-5-preview.vercel.app/docs/snippets\"><em>snippets</em></a></li>\n<li>native TypeScript support, including inside your markup</li>\n</ul>\n<h2 id=\"Will-I-need-to-rewrite-everything\"><span>Will I need to rewrite everything?</span><a target=\"_blank\" href=\"https://svelte.dev/blog/svelte-5-release-candidate#Will-I-need-to-rewrite-everything\"></a></h2><p>Components written for Svelte 4 will continue to work with Svelte 5, with a <a target=\"_blank\" href=\"https://svelte-5-preview.vercel.app/docs/breaking-changes\">handful of exceptions</a>. If you install Svelte 5 in an existing app, the only real change should be that things get faster. If you maintain a Svelte app, we recommend updating to Svelte 5 as soon as it’s stable. (In the meantime, if you’re currently on Svelte 3 then you should <a target=\"_blank\" href=\"https://svelte.dev/docs/v4-migration-guide\">update to Svelte 4</a>.)</p>\n<p>Eventually — in Svelte 6 or 7 — support for certain Svelte 4 features will be dropped in favour of their modern replacements. Because of that, we do encourage you to incrementally migrate your components (you can mix and match old and new components in the same app). We’ll release a command line tool for automating much of this migration, and you can try an experimental version of that tool in the <a target=\"_blank\" href=\"https://svelte-5-preview.vercel.app/\">playground</a> by pasting in some Svelte 4 code and clicking the ‘migrate’ button.</p>\n<h2 id=\"When-is-the-stable-release\"><span>When is the stable release?</span><a target=\"_blank\" href=\"https://svelte.dev/blog/svelte-5-release-candidate#When-is-the-stable-release\"></a></h2><p><a target=\"_blank\" href=\"https://github.com/sveltejs/svelte/milestone/9\">When it’s done</a>, and we’ve updated all the documentation. Bear with us!</p>\n</div>",
"author": "@sveltejs",
"favicon": "https://svelte.dev/favicon.png",
"source": "svelte.dev",
"published": "",
"ttr": 83,
"type": ""
}