This episode traces Svelte's history from the birth of the compiler-driven framework idea, the release of Svelte 3 with reactivity without APIs, to the arrival of SvelteKit. You will also understand the problems Svelte solves and how it differs from React, Vue, and Angular.

Every great technology is born out of frustration with old approaches, and Svelte is no exception. Episode 1 opens the story behind Svelte: how a framework described as "the magical disappearing UI framework" came to be, what problems it set out to solve, and why millions of developers are starting to move to it.
Understanding the history matters because it explains design decisions. Why does Svelte compile code at build time? Why is there no virtual DOM? The answers lie in the long journey from Ractive, through Svelte 1, to the runes in Svelte 5. If you understand the why, syntax that looks strange starts to feel logical.
In this episode we discuss Svelte's evolution, the problems it solves, its comparison with React, Vue, and Angular, and why Svelte is worth learning in 2026.
Svelte was created by Rich Harris, a writer and developer who had previously built a framework called Ractive. At the time he noticed a pattern: every JavaScript framework shipped a runtime — thousands of lines of code that the browser had to download and run just so components could work. He asked: why not compile components into plain JavaScript at build time, so that no framework is left running in the browser?
In 2016, Svelte was released with that idea. The focus was not adding features, but eliminating the work that had been pushed onto the runtime. Because components are turned into imperative code at build time, Svelte needs no framework interpreter on the client. The result: small bundle sizes and extremely fast applications.
The release of Svelte 3 in 2019 was a major turning point. Previously, Svelte's reactivity still used fairly clunky syntax. Svelte 3 introduced a simple idea: reactivity without APIs. You just write:
<script>
let count = 0
$: doubled = count * 2
</script>
<button on:click={() => (count += 1)}>
Klik {count}
</button>$: doubled = count * 2 is a reactive statement: every time count changes, doubled is recalculated automatically. No .set(), no .get(), no hooks. Ordinary variables are reactive out of the box. This simplicity is what drew so many developers to Svelte.
Later, Svelte 4 (2023) tidied up the internal code, and Svelte 5 (2024) introduced runes — $state, $derived, and $effect — taking reactivity to the next level without changing the language's structure. We will dissect runes in depth starting in episode 4.
Svelte only solves the UI side. For full-stack needs, in 2020 the Svelte team began building SvelteKit and released stable version 1.0 in December 2022. SvelteKit adds file-based routing, server-side rendering, pre-rendering, form actions, and adapters for deploying to a variety of platforms.
With SvelteKit, a single application handles both frontend and backend: data is fetched on the server through load functions, then rendered on the client. This concept is the backbone of episodes 8 through 21 in this series.
React, Vue, and Angular ship a runtime to the browser: an interpreter engine for their virtual DOM elements and reactivity systems. The browser must download, parse, and execute that runtime every time the application opens. Svelte is different: the compiler turns your components into ordinary JavaScript at build time, so there is no runtime to carry around.
The results are immediately noticeable: applications load faster the first time, use less memory, and are more responsive on mid-range devices. This is the core problem Svelte set out to solve — freeing you from the framework's "hidden cost".
Because the framework nearly disappears from the final output, Svelte's JavaScript bundles are far lighter. The code the compiler produces contains only the logic your components actually use. The combination of small bundles and no virtual DOM makes Svelte a strong choice for performance-focused applications such as landing pages, dashboards, and content sites.
| Aspect | Svelte | React | Vue | Angular |
|---|---|---|---|---|
| Approach | Compiler | Virtual DOM | Virtual DOM | Full framework |
| Syntax | .svelte components | JSX | Single-file components | Template + TypeScript |
| Transformation time | At build | At runtime | At runtime | At runtime |
| Framework size | Minimal | Medium | Medium | Large |
| Reactivity | JavaScript language | Hooks | reactive data | Observables |
The key difference is not about "which is best" but about where the work happens: React and Vue pay interpretation costs in the browser, while Svelte pays them once at build time. Each has a strong ecosystem, but Svelte's approach is fundamentally lighter.
React and Vue compare new state against old state inside a virtual DOM, then compute which changes to apply to the real DOM. This process runs in the browser constantly. Svelte eliminates that step: at build time, the compiler knows exactly which parts of the DOM depend on a given piece of state, and generates update code that targets those elements directly.
// An imagined sketch of the code the compiler produces
function updateCount(node, value) {
node.textContent = value
}updateCount(node, value) illustrates the principle: direct updates to the relevant element, with no virtual DOM intermediary. No diffing, no framework waiting around in the browser.
Learning Svelte feels like writing ordinary HTML and JavaScript — no abstract concepts like useMemo, dependency arrays, or virtual DOM. You write state and views, and the compiler handles the rest. The learning curve is short, so teams can become productive faster.
SvelteKit delivers a cohesive full-stack experience: routing, SSR, and simple deployment. The ecosystem keeps growing — from Svelte Native for mobile, component libraries like SvelteUI and shadcn-svelte, to adapter support on Vercel, Netlify, and Cloudflare. We will explore all of it in the coming phases.
Key takeaways:
$state.In the next episode 2 we will dissect core concepts and main architecture — how the compiler works behind the scenes, the structure of a .svelte file, reactive declarations, lifecycle hooks, and scoped CSS. This is the technical foundation every following episode builds on.