Svelte 5 Released: Runes and a Ground-Up Rewrite
Svelte 5 arrived as a ground-up rewrite of the compiler and runtime, introducing runes for explicit fine-grained reactivity, snippets, and native TypeScript support.
Historical Archive. This article documents an event from 2024 and is preserved with its original date for reference. It is not current news, and details may have changed since publication.
What happened
Svelte 5 was released on October 22, 2024, according to the official announcement on the Svelte blog. After almost 18 months of development comprising thousands of commits from dozens of contributors, the team called it the most significant release in the project's history: a ground-up rewrite of the compiler and runtime that makes apps faster, smaller and more reliable while remaining almost completely backwards-compatible with Svelte 4.
Runes
The headline feature is runes, an explicit mechanism for declaring reactive state, most visibly the $state rune. In Svelte 4, reactivity was driven entirely by the compiler, which meant changing a single property of a reactive object invalidated the entire object; other frameworks had meanwhile adopted fine-grained reactivity based on signals. Runes bring that fine-grained model to Svelte while keeping state ergonomic: with the $state rune, a count is still just a number rather than a function or an object with a value property. Runes can also be used in .svelte.js and .svelte.ts modules, enabling reusable reactive logic.
Snippets and event handlers
Svelte 5 replaced the older slot mechanism, along with the confusing let: and svelte:fragment syntax, with snippets declared via the {#snippet} block, described as a much more powerful tool for passing content between components. Event handlers are now just props like any other, which makes it easy to know whether a consumer supplied a particular handler or to spread arbitrary handlers onto an element, both especially useful for library authors.
Migration and tooling
The team stressed that Svelte 5 is almost completely backwards-compatible: for most users the initial upgrade is seamless, and existing components keep working, only faster. Developers can migrate an entire app with a migration command or convert components one at a time in VS Code. The release also brought native TypeScript support with no more preprocessors, many bug fixes, and a new sv command-line interface.
Why it mattered
Svelte 5 was a foundational release. By moving to signal-based fine-grained reactivity through runes and unifying concepts like event handlers and slotted content into ordinary props and snippets, it removed long-standing inconsistencies and footguns while setting the stage for future improvements that would have been impossible on top of Svelte 4.
Related on Skillo
See also: Svelte 4 and its performance work.
Sources
Published date reflects the original event date (2024-10-22). This article is original Skillo editorial written from the sources above; facts were verified in September 2026.
Written by
Skillo Staff
0 Comments
Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.