nextjs-project-starter
Crea proyectos Next.js con un stack configurable, siempre usando las últimas versiones estables.
Triggers
| Frases que activan el skill |
|---|
| “crear proyecto Next.js” |
| “nuevo proyecto web” |
| “empezar app fullstack” |
| “bootstrap Next.js” |
Principios
- Siempre preguntar antes de actuar
- Últimas versiones con verificación de docs
- Mostrar breaking changes de versiones mayores
- Configurable - el usuario elige qué incluir
Workflow completo
1. Basics del proyecto
1. Project name (kebab-case)
2. Project description
3. Target domain (carlosmonti.com / xmontc.xyz / custom / none)
2. Versión de Node
Node.js version para este proyecto:
☐ Usar actual (v22.x)
☐ Usar Next.js recommended LTS
☐ Especificar versión custom
Genera .nvmrc y engines en package.json.
3. Selección de features
Core Features (seleccionar):
☐ Mantine UI + Tabler Icons
☐ Supabase (auth + database)
☐ Zustand (state management)
☐ Zod (validation)
☐ SWR (data fetching)
☐ TanStack Query
☐ Vercel Analytics + Speed Insights
☐ Testing setup (Vitest + Testing Library)
4. Verificación de versiones
Para CADA dependencia seleccionada:
📦 @mantine/core
Version: ^7.15.0 (latest stable)
Docs: https://mantine.dev/getting-started
⚠️ Note: v7 requires PostCSS preset (breaking from v6)
¿Install this version? [Y/n]
5. Integraciones
Project Integrations:
1. GitHub Repository
☐ ¿Crear private repo en GitHub?
2. Vercel Deployment
☐ ¿Linkear a Vercel para auto-deploy?
3. Supabase Project (si seleccionado)
☐ ¿Crear nuevo proyecto Supabase?
4. CLAUDE.md
☐ ¿Generar CLAUDE.md para este proyecto?
Estructura generada
src/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ ├── (auth)/ # Auth route group
│ └── (main)/ # Main app routes
├── components/ # React components
│ ├── ui/ # Base UI
│ └── features/ # Feature-specific
├── hooks/ # Custom hooks
├── lib/ # Core utilities
├── providers/ # Context providers
├── stores/ # Zustand stores
├── types/ # TypeScript types
├── utils/ # Utility functions
│ └── supabase/ # Supabase client
└── test/ # Test setup
├── mocks/
└── setup/
Archivos de configuración
Si Mantine seleccionado
// postcss.config.mjs
export default {
plugins: {
'postcss-preset-mantine': {},
'postcss-simple-vars': {
variables: {
'mantine-breakpoint-xs': '36em',
'mantine-breakpoint-sm': '48em',
// ...
},
},
},
};
Environment template
# .env.example
# Supabase (si seleccionado)
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# Analytics (si seleccionado)
NEXT_PUBLIC_VERCEL_ANALYTICS_ID=
Output final
✅ Project created: my-app
📁 Location: ~/Projects/github/my-app
🔧 Node: 22.x (via .nvmrc)
📦 Installed:
- next@15.x
- @mantine/core@7.x
- @supabase/ssr@0.x
- zustand@5.x
- zod@3.x
🔗 Integrations:
- GitHub: https://github.com/testacode/my-app
- Vercel: Linked (auto-deploy on push)
📝 Next steps:
1. cd my-app
2. cp .env.example .env.local
3. Configure credentials
4. npm run dev
Referencia de dependencias
| Package | Propósito | Docs |
|---|---|---|
| next | Framework | nextjs.org/docs |
| @mantine/core | UI Components | mantine.dev |
| @tabler/icons-react | Icons | tabler.io/icons |
| @supabase/ssr | Supabase SSR | supabase.com/docs |
| zustand | State | zustand-demo.pmnd.rs |
| zod | Validation | zod.dev |
| swr | Data Fetching | swr.vercel.app |
| vitest | Testing | vitest.dev |
Error handling
| Error | Solución |
|---|---|
| npm install falla | Verificar Node version, probar --legacy-peer-deps |
| gh repo create falla | gh auth status |
| vercel link falla | vercel login |
| Supabase setup falla | Guiar a setup manual en supabase.com |