5 lecciones que aprendí conectando mi portafolio a un CMS headless
Notas prácticas sobre Astro, Strapi y los errores que cometí en el camino.

Cuando empecé a construir este portafolio, la parte visual fue la más fácil. Lo que realmente me hizo pensar fue conectar cada sección a un CMS real en vez de dejar todo el contenido escrito directamente en el código. Estas son cinco cosas que aprendí en el camino.
1. Diseña primero, conecta después
Construí cada sección con datos de prueba antes de pensar en el CMS. Eso me dejó validar el diseño rápido, sin esperar a tener el backend listo. Cuando por fin conecté cada endpoint, solo tuve que reemplazar los datos, no rehacer el diseño.
2. El populate profundo de Strapi tiene sus trucos
Strapi v5 solo popula un nivel por defecto. Si una relación tiene, a su vez, otra relación adentro (como un ícono dentro de una tarjeta), hay que pedirlo explícitamente con algo como
populate[relacion][populate]=otraRelacion
. La primera vez que lo necesité, perdí un buen rato pensando que el dato simplemente no existía.
3. Nunca confíes en que un campo va a estar lleno
Todo el contenido del CMS puede venir vacío, sobre todo mientras se está cargando por primera vez. Por eso cada sección de este sitio tiene un
valor de respaldo
: si el dato real no está, se muestra un texto sensato en su lugar, nunca un hueco vacío o un error.
4. Los content-types crecen con el proyecto
- Empecé con campos simples: título y subtítulo.
- Con el tiempo agregué relaciones: categorías, tecnologías, íconos.
- Al final, hasta el CTA de cada proyecto se volvió su propio content-type reutilizable.
No pasa nada por no tener el esquema perfecto desde el día uno. Lo importante es que el código sepa adaptarse cuando el esquema cambia.
5. Un componente reutilizable ahorra horas
El carrusel de imágenes, las tarjetas de proyecto, el parser de texto enriquecido... todo eso lo construí una sola vez y lo reutilizo en varias secciones. Cuando se necesita un ajuste, se hace en un solo lugar y se refleja en todas partes.
Si estás construyendo algo parecido, mi consejo es simple: conecta lo real lo antes posible, pero deja que tu interfaz siga funcionando aunque el dato no llegue.
Documentos