From nuxt-modern-dev
Use when building or reviewing Nuxt 4 apps, app/ directory layout, pages, layouts, server routes, composables, layers, or Nuxt data fetching.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nuxt-modern-dev:nuxt4-frontendThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Baseline:** Nuxt 4.4.x, the `app/` directory, Tailwind 4, and strict TypeScript. Follow the repository's existing package manager and lockfile.
Baseline: Nuxt 4.4.x, the app/ directory, Tailwind 4, and strict TypeScript. Follow the repository's existing package manager and lockfile.
| ALWAYS | NEVER |
|---|---|
Put app code under app/ | Root-level pages/ / components/ for new Nuxt 4 apps |
| Use the package manager selected by the repository | Introduce a second lockfile |
| Tailwind utilities only | Inline styles / <style scoped> |
| Type fetch results | Mock API payloads on failure |
ESLint @nuxt/eslint | Ship without lint script |
app/
├── components/
├── composables/
├── utils/
├── types/
├── pages/
├── layouts/
├── middleware/
├── plugins/
└── assets/css/main.css
server/ # API routes (root)
layers/ # optional shared layers
nuxt.config.ts
useFetchuseAsyncDatatailwindcss4 skilltypescript-strict skillweb-quality skill<script setup lang="ts">
const { data, error, pending } = await useFetch<Item[]>('/api/items')
</script>
<template>
<div class="p-6">
<p v-if="pending" class="text-slate-500">Loading…</p>
<p v-else-if="error" class="text-red-600">Failed to load</p>
<ul v-else class="space-y-2">
<li v-for="item in data" :key="item.id" class="rounded-lg border p-3">
{{ item.name }}
</li>
</ul>
</div>
</template>
// server/api/items.get.ts
export default defineEventHandler(async () => {
// real data source — no fake arrays for “happy path demos” in production code
return await listItems()
})
bun run dev
bun run typecheck
bun run lint
bun run lint:fix
bun run test
bun run build
| When | Read |
|---|---|
| Vue component patterns | vue3-composition |
| CSS | tailwindcss4 |
| ESLint / Vitest / Playwright | web-quality |
| Deploy failures | harness deployment-doctor (not this pack) |
| Excuse | Reality |
|---|---|
| "Pages at repo root is fine" | Nuxt 4 convention is app/ |
| "I'll use a different package manager locally" | Match the checked-in lockfile and repository tooling |
| "Placeholder items for UI" | Use empty/error states |
app/ (or server/)npx claudepluginhub pstuart/pstuart --plugin nuxt-modern-devCovers Nuxt 4 project setup, configuration, file-based routing, SEO with useHead/useSeoMeta, error handling, and directory structure. Use when creating new Nuxt 4 projects or configuring core framework features.
Provides Nuxt 4 conventions: directory structure, SSR/SPA/hybrid rendering, file-based routing, auto-imports, data fetching, server routes, and deployment.
Vitesse-style Nuxt 4 starter with Vite, UnoCSS, Pinia, VueUse, and PWA. Scaffolds or maintains Nuxt apps using this opinionated stack.