๐ Modern admin dashboard template built with Nuxt 4, TypeScript, and Nuxt UI
A modular, full-stack admin dashboard template designed to be quickly adapted for various projects. Built with Nuxt 4, Nuxt UI, TypeScript, and following a Modular Monolith architecture.
- Framework: Nuxt 4 with Nitro server
- Language: TypeScript
- UI Library: Nuxt UI (shadcn-vue based)
- Styling: Tailwind CSS
- State Management: Pinia
- Authentication: nuxt-auth-utils (OAuth, sessions)
- Testing: Vitest + @nuxt/test-utils
- Linting: Oxlint (fast) + ESLint (deep checks)
- Formatting: Oxfmt
- Node.js >= 20.0.0
- pnpm >= 9.0.0
# Install dependencies
pnpm install# Start development server
pnpm devOpen http://localhost:3000 in your browser.
# Build for production
pnpm build
# Preview production build
pnpm previewnuxdmin/
โโโ app/
โ โโโ modules/ # Feature modules (Modular Monolith)
โ โโโ auth/ # Authentication & authorization
โ โโโ dashboard/ # Dashboard module
โ โโโ users/ # User management
โ โโโ settings/ # Settings module
โ โโโ shared/ # Shared utilities
โโโ server/ # Nitro API routes
โโโ types/ # TypeScript definitions
โโโ test/ # Vitest tests
Each module follows this pattern:
app/modules/[module-name]/
โโโ components/ # Vue components
โโโ composables/ # Composable functions
โโโ pages/ # Auto-routed pages
โโโ server/api/ # API routes
โโโ types/ # TypeScript types
โโโ index.ts # Public API exports
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm lint:oxlint |
Run Oxlint (fast) |
pnpm lint |
Run Oxlint + ESLint |
pnpm format |
Format with Oxfmt |
pnpm test:unit |
Run unit tests |
pnpm test:coverage |
Run tests with coverage |
- Modular Architecture - Self-contained modules with clear boundaries
- Type Safety - Full TypeScript coverage
- OAuth Authentication - GitHub, Google providers via nuxt-auth-utils
- Dark/Light Mode - Built-in theming support
- Responsive Design - Mobile-first approach
- Testing Ready - Vitest configuration included
This template is designed to be forked and adapted per project:
- Remove unused modules - Delete module directories you don't need
- Add new modules - Follow the module template structure
- Configure OAuth - Set up nuxt-auth-utils with your providers
- Customize theme - Modify
app.config.tsfor your brand colors
MIT