Back to projects
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-migrate para 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.

Let's talk?