Skip to content

Instantly share code, notes, and snippets.

@usrrname
Last active July 23, 2025 00:44
Show Gist options
  • Save usrrname/3b26e9fb183d24d186a8a5a82ac9f12e to your computer and use it in GitHub Desktop.
Save usrrname/3b26e9fb183d24d186a8a5a82ac9f12e to your computer and use it in GitHub Desktop.
things I can't stand about nuxt

So, nuxt problems:

•⁠ ⁠SSR rendering patterns and data hydration on server was not as maturely developed as NextJS ... this resulted in a lot of console noise and rendering flash

•⁠ ⁠⁠at my last work we ended up switching the app to completely do client side rendering to improve page speed 😆

•⁠ ⁠⁠overly strict foldering opinions esp for component naming... remember how all components would by default inherit the parent folder name? Components like /Foo/Bar/Thing.vue would become named as <FooBarThing/> wherever you want to import it due to its build opinions.

•⁠ ⁠⁠auto-imports were possible because at build time nuxt generates a series .d.ts in .nuxt/ of ALL composable and components such that they are globally namespaced. If you don't know about this it can be very easy to create conflicting and duplicate namespaced component prop types

•⁠ ⁠⁠globally namespaced functions all get appended to window.$nuxt after loading in the browser. Odd design choice

•⁠ ⁠⁠nuxt test utils is poorly documented test lib. It wraps around vue test utils which is much better documented.

•⁠ ⁠⁠their wrapper-handlers for $fetch, useFetch, and useAsyncData are often confusing for new onboarding devs and are written just to be able to work with fetch inside nuxt. A dev should be able to use the browser native fetch if they wanted... but they can't.

  • in Nuxt 3 the debug traces for any missing nullcheck or 500 error are horrible to debug and don't provide a line number to troubleshoot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment