Nuxt is a free and open-source framework with an intuitive and extendable way to create type-safe, performant and production-grade full-stack web applications and websites with Vue.js.
We made everything so you can start writing .vue
files from the beginning while enjoying hot module replacement in development and a performant application in production with server-side rendering by default.
Nuxt has no vendor lock-in, allowing you to deploy your application everywhere, even on the edge.
If you want to play around with Nuxt in your browser, you can try it out in one of our online sandboxes.
Nuxt uses conventions and an opinionated directory structure to automate repetitive tasks and allow developers to focus on pushing features. The configuration file can still customize and override its default behaviors.
pages/
directory. This can make it easier to organize your application and avoid the need for manual route configuration.tsconfig.json
Nuxt takes care of these and provides both frontend and backend functionality so you can focus on what matters: creating your web application.
Nuxt comes with built-in server-side rendering (SSR) capabilities by default, without having to configure a server yourself, which has many benefits for web applications:
Overall, server-side rendering can provide a faster and more efficient user experience, as well as improve search engine optimization and accessibility.
As Nuxt is a versatile framework, it gives you the possibility to statically render your whole application to a static hosting with nuxt generate
, disable SSR globally with the ssr: false
option or leverage hybrid rendering by setting up the routeRules
option.
Read more in Nuxt rendering modes.
The Nuxt server engine Nitro unlocks new full-stack capabilities.
In development, it uses Rollup and Node.js workers for your server code and context isolation. It also generates your server API by reading files in server/api/
and server middleware from server/middleware/
.
In production, Nitro builds your app and server into one universal .output
directory. This output is light: minified and removed from any Node.js modules (except polyfills). You can deploy this output on any system supporting JavaScript, from Node.js, Serverless, Workers, Edge-side rendering or purely static.
Read more in Nuxt server engine.
A Nuxt application can be deployed on a Node or Deno server, pre-rendered to be hosted in static environments, or deployed to serverless and edge providers.
Read more in Deployment section.
A module system allows to extend Nuxt with custom features and integrations with third-party services.
Read more in Nuxt Modules Concept.
Nuxt is composed of different core packages:
We recommend reading each concept to have a full vision of Nuxt capabilities and the scope of each package.