For years, Svelte and its ‘meta-framework’ SvelteKit have quietly been among the best options for building full-stack TypeScript applications on the web. While SvelteKit offers superior performance with less code than all of the other full-stack frameworks, it still hasn’t gained much traction, especially in Australia. Next.js remains the default choice for many new projects, driven by mindshare, hiring inertia, and the gravitational pull of the React ecosystem. In this post, I want to explore why SvelteKit is great and why I think it deserves more attention.
Simplicity of Svelte
Svelte takes the best parts of React & Vue and combines them into an output
that is easier to read and write. State can be declared with $state, then
updated directly:
let framework = $state("React");
framework = "Svelte";
Need an input to keep state in sync? Add bind:value={firstName} and you’re
done, no onChange={handleChange} ceremony needed. See a side-by-side comparison for
more examples. It feels intuitive, and it helps you ship the same features with
less code.
Performance
Most React developers have experienced accidental re-renders that quietly drag
performance down. Svelte’s signal-based reactivity avoids that class of
problem by updating only the DOM that actually changed. The result is better
performance as apps grow, without constantly reaching for useMemo() or
useCallback() to keep things fast.
SvelteKit also ships less JavaScript to the browser thanks to its compiler-first approach, which helps it post excellent Core Web Vitals numbers, right alongside Astro, one of the strongest performers in the static site space.
Ecosystem
React has the largest ecosystem of libraries and tools, but Svelte’s ecosystem is growing rapidly and thanks to the ability to use vanilla TypeScript, can easily integrate with many existing libraries. All the tools you’d need to build a modern web app are available:
- Components: Svelte component libraries
- Auth: Better Auth SvelteKit integration
- Charts: Chart.js or Layer Charts
- ORM: Drizzle ORM
- Icons: Lucide Icons
- Global state management: Built in with
svelte.tsfiles. - Form handling: Built in with
form()remote functions.
Why Isn’t Svelte More Popular?
React is the default, the safe choice with a wider ecosystem and more job
opportunities. AI-driven devlopment is also likely to favour React (although
I’ve seen it misuse useEffect() more than once). Svelte’s
simplicity and performance benefits may not be enough to overcome the inertia
of the React ecosystem, especially for larger teams and projects that require
a lot of third-party libraries.
But then again, if it’s good enough for Apple, maybe it’s good enough for you?