MARKETINGProducción
Danny Cuevas
Portafolio fotográfico con panel administrativo para gestión de álbumes e imágenes.
Contexto
Sitio de portafolio para el fotógrafo Daniel Cuevas. Además de la presencia pública, incluye un panel administrativo para que el propio fotógrafo gestione sus álbumes e imágenes.
Arquitectura
Aplicación Next.js con App Router organizada en tres zonas:
(main)— páginas públicas: portafolio y contacto.admin— gestión de álbumes e imágenes (las migraciones incluyen álbumes, fechas de prioridad y presentaciones).login— autenticación con Auth.js.
La capa de datos sigue el patrón actions/ (con un schema.ts por dominio) y services/ para consultas. El tipado de base de datos se genera automáticamente (Kanel + PgTyped).
Stack
- Next.js + TypeScript + Tailwind CSS.
- PostgreSQL; tipos y validadores Zod generados con Kanel, consultas con PgTyped.
node-pg-migratepara migraciones SQL.- Auth.js (NextAuth) + next-safe-action; nuqs para estado en la URL.
- AWS S3 con URLs prefirmadas para la subida de imágenes.
- Resend para correo.
Resultado
Un portafolio autogestionable en dannycuevas.com: el fotógrafo administra sus álbumes desde un panel privado mientras el sitio público presenta su trabajo con tipado de extremo a extremo.