Instrucciones para inicializar el proyecto Next.js con App Router, Tailwind CSS, Supabase y todas las dependencias necesarias.
Inicializar el proyecto Next.js con todas las dependencias, estructura de carpetas, fuentes, utilidades y configuración de seguridad necesarias para comenzar a implementar la aplicación.
| Categoría | Paquetes |
|---|---|
| Core | @supabase/supabase-js, @supabase/ssr |
| UI | framer-motion, lucide-react |
| Validación | zod |
| Utilidades | clsx, tailwind-merge |
npx create-next-app@latest ./ --typescript --tailwind --eslint --app --src-dir=false --import-alias="@/*"
Usar
./para instalar en el directorio actual. No crear subcarpeta.
npm install @supabase/supabase-js @supabase/ssr framer-motion lucide-react zod
npm install clsx tailwind-merge
app/
├── (auth)/login/page.tsx
├── (auth)/register/page.tsx
├── (kids)/play/page.tsx
├── (kids)/rewards/page.tsx
├── parent/dashboard/page.tsx
├── parent/settings/page.tsx
├── api/progress/route.ts
├── layout.tsx
└── page.tsx
components/ui/
components/games/
components/layout/
lib/supabase/client.ts
lib/supabase/server.ts
lib/utils.ts
types/database.types.ts
middleware.ts
Importar Fredoka (zona niño) y Nunito (zona padre) como variables CSS.
→ Ver referencia: root-layout.tsx
Helper para combinar clases de Tailwind de forma segura.
→ Ver referencia: utils.ts
Crear .env.local:
NEXT_PUBLIC_SUPABASE_URL="https://tu-proyecto.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="tu_clave_publica"
SUPABASE_SERVICE_ROLE_KEY="tu_clave_secreta"
NEXT_PUBLIC_SITE_URL="http://localhost:3000"
→ Ver referencia: next-config.js
En package.json, agregar:
"types:supabase": "npx supabase gen types typescript --project-id=TU_PROJECT_ID > types/database.types.ts"
SUPABASE_SERVICE_ROLE_KEY al cliente./ en create-next-app para instalar en directorio actualnext/font/google (no CDN externo)--app es obligatorio (App Router, no Pages Router)