nuxt-best-practices
Nuxt 4 performance optimization and architecture guidelines (current through Nuxt 4.5) for building fast, maintainable full-stack applications. This skill should be used when writing, reviewing, or refactoring Nuxt code to ensure optimal patterns. Triggers on tasks involving data fetching, server routes, auto-imports, rendering modes, layouts, named views, or Nuxt-specific features.
How do I install this agent skill?
npx skills add https://github.com/vinayakkulkarni/vue-nuxt-best-practices --skill nuxt-best-practicesIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides comprehensive architectural and performance guidelines for Nuxt.js development. It includes educational examples and standard build scripts. No security risks were identified.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
1/26 files flagged
What does this agent skill do?
Nuxt Best Practices
Comprehensive performance optimization guide for Nuxt 4 applications (current: Nuxt 4.5, with notes for 3.x apps approaching EOL). Contains 23 rules across 9 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new Nuxt pages, components, or composables
- Implementing data fetching (useFetch, useAsyncData, the 4.5
enabledoption) - Creating server routes and API endpoints
- Organizing types, composables, and auto-imports
- Working with Nuxt modules and plugins
- Configuring rendering modes (SSR, SSG, SPA, 4.5 experimental SSR streaming)
- Using layouts, named views, and NuxtLink prefetching (Nuxt 4.5 conventions)
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Data Fetching | CRITICAL | data- |
| 2 | Auto-Imports & Organization | CRITICAL | imports- |
| 3 | Server & API Routes | HIGH | server- |
| 4 | Rendering Modes | HIGH | rendering- |
| 5 | State Management | MEDIUM-HIGH | state- |
| 6 | Pages, Layouts & Navigation | MEDIUM | pages- |
| 7 | Type Safety | MEDIUM | types- |
| 8 | Modules & Plugins | LOW-MEDIUM | modules- |
| 9 | Performance & Deployment | LOW | perf- |
Quick Reference
1. Data Fetching (CRITICAL)
data-use-fetch- Use useFetch/useAsyncData, never raw fetch in componentsdata-key-unique- Always provide unique keys for data fetchingdata-lazy-loading- Use lazy option for non-critical datadata-transform- Transform data at fetch time, not in templatedata-error-handling- Always handle error and pending statesdata-refresh-patterns- Use refresh() and clear() appropriatelydata-conditional-enabled- Use theenabledoption for conditional fetching (4.5+)
2. Auto-Imports & Organization (CRITICAL)
imports-no-barrel-autoimport- Never create barrel exports in auto-imported directoriesimports-component-naming- Don't duplicate folder prefix in component namesimports-type-locations- Place types in dedicated directories (app/types, shared/types, server/types)imports-composable-exports- Composables export functions only, not typesimports-direct-composable-imports- Use direct imports between composables
3. Server & API Routes (HIGH)
server-validated-input- Use getValidatedQuery/readValidatedBody with Zodserver-route-meta- Always add defineRouteMeta for OpenAPI docsserver-runtime-config- Use useRuntimeConfig, never process.envserver-error-handling- Use createError for consistent error responsesserver-middleware-order- Understand middleware execution order
4. Rendering Modes (HIGH)
rendering-route-rules- Configure rendering per-route with routeRulesrendering-hybrid- Use hybrid rendering for optimal performancerendering-prerender- Prerender static pages at build timerendering-client-only- Use ClientOnly for browser-specific componentsrendering-ssr-streaming- Understand SSR streaming before enabling it (4.5+, experimental)
5. State Management (MEDIUM-HIGH)
state-use-state- Use useState for SSR-safe shared statestate-pinia-setup- Set up Pinia correctly with Nuxtstate-hydration- Handle hydration mismatches properlystate-computed-over-watch- Prefer computed over watch for derived state
6. Pages, Layouts & Navigation (MEDIUM)
pages-use-layout- Use useLayout to read the resolved layout (4.5+)pages-named-views- Use the name@view.vue convention for named views (4.5+)pages-nuxtlink-custom-prefetch- Wire prefetch manually in NuxtLink custom slots (4.5+)
7. Type Safety (MEDIUM)
types-no-inline- Never define types inline in components/composablestypes-import-paths- Use correct import paths (#shared, ~/, ~~/)types-no-any- Never useanytypetypes-zod-schemas- Use Zod for runtime validation with type inferencetypes-strict-emits- Type emits fully; declare camelCase, listen kebab-case
8. Modules & Plugins (LOW-MEDIUM)
modules-order- Module order matters in nuxt.configmodules-runtime-vs-build- Understand runtime vs build-time modulesplugins-client-server- Use .client.ts and .server.ts suffixes correctlyplugins-provide-inject- Use provide/inject for cross-cutting concerns
9. Performance & Deployment (LOW)
perf-bundle-analysis- Analyze and optimize bundle sizeperf-image-optimization- Use nuxt/image for optimized imagesperf-font-loading- Configure font loading strategyperf-caching-headers- Set appropriate cache headers
How to Use
Read individual rule files for detailed explanations and code examples:
rules/data-use-fetch.md
rules/imports-no-barrel-autoimport.md
rules/_sections.md
Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Additional context and Nuxt-specific notes
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/vinayakkulkarni/vue-nuxt-best-practices/nuxt-best-practices">View nuxt-best-practices on skillZs</a>