- Type server API routes with `defineEventHandler<ResponseType>()` and validate request bodies with `readValidatedBody(event, schema.parse)`.
- Use typed composables: `useFetch<ApiResponse>('/api/data')` and `useAsyncData<User[]>('users', () => $fetch('/api/users'))` for type-safe data fetching.
- Enable `typescript.strict: true` in `nuxt.config.ts` and use `defineNuxtConfig()` for typed configuration.
- Use auto-imported typed utilities: `useState<User>('user')` for SSR-safe state, `useRuntimeConfig()` for typed env access, and `definePageMeta({ layout: 'admin' })` for typed page metadata.
- Augment Nuxt types in `types/` directory: extend `NuxtApp`, `RuntimeConfig`, and `AppConfig` interfaces for project-specific typed globals.
- Type route middleware with `defineNuxtRouteMiddleware((to, from) => { ... })` and access typed route params via `useRoute().params`.
- Use `defineProps<{ user: User }>()` with `<script setup lang="ts">` in all Vue components — Nuxt auto-imports the types.
- Type Pinia stores with explicit state interfaces and use `storeToRefs()` for typed reactive destructuring.
- Define server utilities in `server/utils/` with explicit return types — Nuxt auto-imports them in server routes with full type inference.