Adrian RomoAdrian Romo
Activo

Este Sitio — Portafolio como Producto

Aplicación Next.js 14 con asistente RAG, pipeline i18n de LLM y currículum PDF multilingüe

Resumen

Contexto, enfoque y resultado.

Problema

Un currículum afirma la senioridad; no puede demostrarla. Quería un portafolio que fuera en sí mismo un sistema de producción: cada función una muestra de trabajo verificable que un reclutador pueda clicar, leer e interrogar.

Mi rol

Todo: producto, diseño, backend, frontend y operaciones — diseñado, construido y operado en solitario.

Restricciones

  • El despliegue serverless no debe agotar las conexiones de Postgres, y las páginas públicas deben permanecer cacheables ISR detrás de estrictos encabezados de seguridad.
  • El contenido se envía en inglés, español y alemán sin necesidad de autorizar cada publicación tres veces.
  • El asistente de IA responde únicamente a partir de mi contenido real, dentro de un presupuesto diario de costos, y debe resistir la inyección de comandos.

Arquitectura

Next.js 14 App Router con TypeScript y Prisma sobre Postgres. El asistente es de recuperación aumentada: el contenido del sitio se fragmenta y se incrusta en pgvector, se recupera por pregunta y se responde con modelos de OpenAI — con defensas contra inyección de comandos, límites de tasa por IP, un presupuesto diario de tokens y reindexación impulsada por cron. Un pipeline de traducción LLM genera las locales en español y alemán con detección de obsolescencia basada en hash. La superficie de administración se encuentra detrás de credenciales de NextAuth más claves de WebAuthn bajo un CSP basado en nonce. El PDF del currículum se renderiza del lado del servidor con PDFKit en los tres idiomas. La búsqueda del blog utiliza la búsqueda de texto completo de Postgres; cada ruta emite metadatos canónicos/hreflang, JSON-LD, imágenes de Open Graph por ruta, un sitemap, RSS y llms.txt.

Resultado

El sitio que estás leyendo: un blog multilingüe y estudios de caso, un asistente de IA basado en mi propia escritura, y un currículum PDF listo para reclutadores — todo generado a partir de una única base de código y operado en producción.

Lo que haría diferente

Diseñaría el enrutamiento i18n desde el principio — adaptarlo significó que cada página pública ahora existe en dos árboles de rutas. Y pondría las métricas del proyecto en el esquema en lugar de en prosa para que puedan renderizarse como chips destacados.

Aprendizajes

Lo que me llevo.

Un portafolio que es en sí mismo un sistema de producción supera a las capturas de pantalla: cada función actúa como una muestra de trabajo verificable, y operarlo en solitario mantiene honestos los músculos de un full-stack.

Stack

Herramientas y plataformas.

Next.jsTypeScriptPrismaPostgrespgvectorOpenAITailwind CSSWebAuthnPDFKit

Textos relacionados

Notas de este proyecto.

Conversemos

¿Quieres platicar de este tipo de trabajo?

Si estás contratando para trabajo backend, AWS, voz o integraciones similares —o simplemente quieres comparar notas de arquitectura— escríbeme directo.