--- title: "How Svelte 5 Made Me Understand Nuxt" author: "James 'Dante' Midzi " published: "2025-02-25T00:00:00.000Z" updated: "2026-08-31T10:20:00.158Z" url: "https://zyvop.com/how-svelte-5-made-me-understand-nuxt-mxok2" canonical: "https://dantedecodes.vercel.app/articles/how-svelte-5-made-me-understand-nuxt-2joj" tags: ["vue","nuxt","svelte","sveltekit"] --- # How Svelte 5 Made Me Understand Nuxt ![Cover image]() I have gone on a journey. A long winding journey. A journey I could not have foreseen. As it would have it; I am back, once again, announcing my change in methodologies and workflows. A lot has happened in the world of development and tech; from React and Next.js, to Lucia, to Laravel, to Astro. So much to talk about... One of those 'changes' has made go back to the drawing board yet again. Something I did not think I would have had to to do for about 3 to 5 years. Yet, here we are; me eating my words. Rather than having to answer question later down the line, I figured it would be simpler for me to talk about and explain my decisions. * * * ## The Changes It all boils down to one thing really. One thing that has been made core and I cannot get with it. ### Runes - My Friction Point I have read through the documentation, I watched the release videos. I have explored the _new_ way. After all that, I will never accept the runes syntax. My brain will not find synergy. This - whatever this way is - is in opposition of all the reasons I gravitated towards Svelte and Sveltekit. ```javascript let count = $state(0);let double = $derived(count * 2) $effect(() => { setInterval(() => { elapsed += 1; }, interval);}); ``` I understand all of it, I get what they were trying to accomplish. I just don't like it. It is too indicative of React; and I left React ages ago. I left the `useState` and `useEffect` of React because they wound up complicating what should have been simple. The runes syntax of Svelte feels a little to similar to React and I have no intention of writing that kind of code again. Regardless of how 'better' it may be. For me there was something elegant about Svelte's `$:` syntax. It was simple, straightforward and easy enough to understand. It wasn't perfect, but it worked. #### Then Snippets... To be able to have and reuse chunks of code. Sounds cool on paper, but looking at the code and the implementation, it feels too much like a React way of doing things. There are **waaaaay** to many symbols for my liking. This is horrible to look at: ```xml {#snippet hello(name)}

hello {name}! {message}!

{/snippet} {@render hello('alice')}{@render hello('bob')} ``` Enter fullscreen mode Exit fullscreen mode * * * ### Nuxt In [an article](), where I sang the praises of SvelteKit, I said that I didn't like Nuxt and how it did templating. With the looming arrival of Svelte 5, I revisited decisions I had made earlier. I realised that a lot of what I was complaining about had to do with my misunderstanding. I got over those misconceptions and learnt, built and migrated some projects. A few things that finally won me over were: - **File-Based Routing**: Nuxt implements file based routing, not directory based - I have [an article]() on this. I have always been partial to file-based routing. I only tolerated SvelteKit's directory approach because everything else is simple. - **Auto Imports**: In most frameworks if you wish to import something into a file, you usually have an import statement at the top. This is not the case with Nuxt - **Separation of Concerns**: I mentioned this in that same article; how I was not a fan of Next.js placing everything in a single directory. Nuxt doesn't have that problem - everything has its specified place - Pages - Layouts - Middleware - Server - **Modules**: So the Nuxt people have modules, modules upon modules to things you may want to add to your project; icons, SEO, sitemaps, fonts. Nuxt probably has a module for that. Reminds me of Astro integrations - I love those. I was wrong about Nuxt, I admit that. * * * ## Wrapping Up I guess that's the beauty of being a developer and an adult; the ability to choose what I use and what I don't. If I am not happy in what I am doing and what I am doing it with, I will rarely ever invest that much commitment into it - this is where I have arrived with Svelte - I am not happy, I feel I am moving backwards. * * * ### Thank you for reading, let's connect! Thank you for visiting this little corner of mine. Let's connect on [Twitter](), [Discord]() and [LinkedIn]()