
A practical, beginner-friendly Nuxt 3 cheatsheet — updated for 2025. Covers plugins, composables, middleware, Nitro, Vite, Pinia, and more to help you quickly get back up to speed.
Reza Baar
July 22, 2025
Nuxt’s been around for a while -built on top of Vue- and with Nuxt 4 just around the corner, it’s a good time to revisit some of the basics. If you're new to Nuxt (or Vue), or just catching up after a break, here’s what people are actually talking about when they say things like 'Vite', 'Pinia', or 'Nitro'.
Folder structure in Nuxt
| Folder | Purpose |
|---|---|
| pages/ | Auto-routes based on file names |
| components/ | Vue components |
| layouts/ | Custom layouts |
| middleware/ | Functions run before rendering page |
| plugins/ | Inject functions/libraries |
| composables/ | Auto-imported composables |
Key tools in Nuxt ecosystem
| Tool | Purpose |
|---|---|
| Nitro | Server engine (used for SSR, server APIs, middleware) |
| Vite | Frontend bundler (use for Dev server, build optimization) |
| Pinia | State management system |
Now let's get into detail (only a bit)
Plugins:
Plugins in Nuxt are a way to extend your app’s functionality by injecting features, libraries, or custom logic into the app context. They run before your Vue components are created. They run globally and are available everywhere without having to import it manually each time.
In Nuxt 3, you can create a plugin like:
// /plugins/myPlugin.ts
export default defineNuxtPlugin(nuxtApp => {
nuxtApp.provide('hello', () => 'Hello from plugin!')
})
And use it like:
const hello = inject('hello')
Composables:
In short: Composables = Reusable logic using Composition API
Let's look at a simple composable example:
// composables/useCounter.ts
export const useCounter = () => {
const count = ref(0)
const increment = () => count.value++
return { count, increment }
}
```js
You can use it in your vue component like:
Middleware:
// middleware/auth.global.ts
export default defineNuxtRouteMiddleware((to, from) => {
const user = useUser()
if (!user.value) return navigateTo('/login')
})
What is Nitro?
Nitro is a lightweight universal server engine built by the Nuxt team. It’s what powers SSR (Server-Side Rendering), API routes, and deployment adapters in Nuxt 3.
Nitro: Next Generation Server Toolkit
What is Vite?
Vite is a (blazing fast) modern frontend bundler with tree shaking, instant dev start and fast Hot Module Replacement.
What's Pinia then?
Pinia is the official state management library for Vue 3, and by extension, Nuxt 3.
Think of Pinia as Vuex’s leaner, friendlier successor. You define a store using "defineStore()" and use it in components without boilerplate.
It's lightweight and modular and there's first-class support for it in Nuxt (meaning it's officially integrated, fully supported, and works seamlessly out of the box)
I've heard of Rollup and Rolldown, what are they?
Rollup is a JavaScript module bundler (like Webpack or Vite's underlying engine for builds), known for being simple, fast, and tree-shake-friendly. It takes all your import/export JavaScript (or TypeScript) files, bundles them into one or more optimized output files.
In our context, Vite uses Rollup under the hood for production builds.
Rolldown is a newer project, currently under development (time of writing this article: June/July 2025).
It's a Rollup-compatible bundler written in Rust, aiming to be blazing fast (like esbuild or Turbopack).
Get the latest news and updates on developer certifications. Content is updated regularly, so please make sure to bookmark this page or sign up to get the latest content directly in your inbox.

Inside the JavaScript Event Loop: How the Runtime Actually Works
Understand the JavaScript event loop in depth. Learn how the call stack, microtasks, and macrotasks work together to handle asynchronous code efficiently, keeping your applications fast, predictable, and responsive.
Martin Ferret
Nov 18, 2025

React Free Weekend: 48 hours of Open Access to Premium React Certification Training
Every year, we at Certificates.dev look for ways to make our certifications more accessible - not just for teams inside big tech companies, but for every developer who wants to validate their skills through real-world, hands-on learning. That’s why we are excited to announce our first-ever React Free Weekend, taking place on November 15–16, 2025.
Aurora Scharff
Nov 11, 2025

Error Handling in React with react-error-boundary
Learn how to handle errors in React applications with react-error-boundary. Explore fallback UIs, async error handling with useErrorBoundary, and React 19's automatic error boundary integration with form actions and useTransition.
Aurora Scharff
Nov 10, 2025
We can help you recruit Certified Developers for your organization or project. The team has helped many customers employ suitable resources from a pool of 100s of qualified Developers.
Let us help you get the resources you need.
