I've comments on it, but here goes again. I can't at all say Svelte lacks magic, but that magic is focused on eliminating boilerplate, not hiding where everything is coming from and going to.<p>It is jarring at first when you look at your code and say, "Wait, what else do I need to do?" And there's nothing left.<p><pre><code> const { count, setCount } = useState(0);
</code></pre>
in React becomes the following in Svelte.<p><pre><code> let count = 0;
</code></pre>
There is no more useMemo(…) or useEffect(…). No trying to help junior devs wrap their minds around closure rules just for basic functionality. These "extra" APIs on top of your problem just don't exist. There's no need for them. State management "just works" by using a store variable like $store instead of a more explicit subscribe callback and then having to remember to set up an event callback to unsubscribe and avoid a resource leak.<p>Vanilla JS libraries typically work out if the box with it without some bespoke wrapper or adapter for your framework. ("bind:this" is really handy.)
Web development with 99% less BS. Lets you focus on your problem, not on your framework's abstraction leaks.<p>In Svelte, CSS is automatically scoped to your component. No manual shenanigans, weird naming rules, or bespoke CSS generation from JS your dev team have to agree on like what's found in React. No giving up and just using inline styles. No hacks.<p>Just make a descriptive class name and write your CSS styles. That's it. You're done. For that reason, it reduces any desire I have to work with Tailwind, since we don't have to worry about style leakage. For pre-made styles, Open Props works better with SvelteKit's model.<p>If you like functional programming (like <i>REALLY</i> like it and consider it the "one true way"), React will likely appeal to you more since it puts programmatic logic above all other concerns and really cares about immutability and one-way data binding.<p>For the rest of us who care a little less about (in my opinion illusory) absolute purity and more about getting the job done as quickly as possible, with the least amount of code, and more understandable to newcomers, SvelteKit simply can't be beat for developer experience.<p>Under no circumstances would I recommend using React without a metaframework like NextJS. Similar advice for Svelte/SvelteKit, though I have used Svelte on its own for trivial, truly single-page view apps/pages.<p>For a beginner, no question: Svelte/SvelteKit is easier to learn, teach, and become productive with.<p>If you hate HTML and CSS, React is far better at hiding the underlying technologies from view. With Svelte, HTML and CSS are baked in to the developer experience.