MARKETINGProduction
Danny Cuevas
Photography portfolio with an admin panel for managing albums and images.
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.