For years, Svelte and its meta-framework SvelteKit have quietly been among the best options for building full-stack TypeScript applications on the web. SvelteKit offers excellent performance with far less boilerplate than most React-based frameworks. Even so, it still hasn’t gained the same traction: 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
Svelte apps typically require less code than their React or Vue counterparts.
State can be declared with let framework = $state(“React”), then
updated directly with 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?