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.
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.
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.
Stack
- Next.js
- TypeScript
- Supabase
- Postgres
- Tailwind CSS
- pdf-lib
- Vercel
Integraciones
- Supabase Storage
- Vercel Analytics
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