Santiago Valencia Vera.
Todos los sistemas

Esta plataforma de portafolio

El sitio que está leyendo. Un portafolio bilingüe con contenido servido desde Postgres, un área de administración pequeña, documentos generados y cambios de esquema versionados.

01El problema

Un portafolio que necesita un desarrollador para cada edición de contenido deja de actualizarse. La primera versión además duplicaba contenido entre idiomas de formas que permitían que ambos se desfasaran, y el CV descargable era un archivo estático que quedaba obsoleto apenas cambiaba la página.

02Arquitectura
Esquema de arquitectura de este portafolio: Next.js en Vercel leyendo filas publicadas desde Supabase, con enrutamiento bilingüe y documentos de CV generados.

El contenido vive en Postgres y se lee por una vía pública de solo lectura restringida a filas publicadas, así el sitio público nunca puede exponer un borrador. La edición ocurre en un área administrativa pequeña con autenticación, no en el código. Los cambios de esquema se aplican como migraciones versionadas, que es lo que hace seguro seguir evolucionando el modelo.

Ambos idiomas salen de los mismos registros, y el idioma activo se propaga por la navegación para que cambiarlo nunca devuelva al lector al idioma por defecto. La página de CV y el documento descargable se generan desde una sola fuente de datos, lo que impide que el archivo se desfase de la página. Los diagramas de arquitectura de esta sección se generan desde especificaciones declarativas con un script, así los cinco se mantienen visualmente idénticos y se pueden regenerar tras cualquier edición.

03Stack

Stack

  • Next.js
  • TypeScript
  • Supabase
  • Postgres
  • Tailwind CSS
  • pdf-lib
  • Vercel

Integraciones

  • Supabase Storage
  • Vercel Analytics
04Decisiones

Leer el contenido público con una llave restringida y una política de solo publicados significa que la base de datos hace cumplir lo que es visible, no la aplicación. Un filtro olvidado en una consulta nueva no puede filtrar un borrador.

Los diagramas se generan, no se dibujan. Cada uno es una especificación de nodos, carriles y conexiones que un script renderiza, lo que mantiene un lenguaje visual consistente en todos los casos y convierte una corrección en un cambio de una línea en vez de un redibujo.

02 — Próximo proyecto

Tracemos la ruta.

santiagovalenciavera@gmail.com · Abierto a roles senior y proyectos seleccionados