Desenvolupament web

Escandell Web V2 — Portfolio

Portfolio personal amb Astro i gestor de projectes propi: API REST, generacio d'imatges IA, MCP per a agents i desplegament automatitzat.

Context

El portfolio personal necessitava una renovacio completa. L'objectiu era crear un web modern amb Astro que servis com a vitrina de projectes, pero amb un gestor de continguts propi que permetes: crear projectes en catala i castella facilment, generar imatges de portada amb IA, i que els agents Hermes poguessin gestionar continguts autonomament via MCP.

Que fa

  • Gestor de projectes: API REST completa per crear, actualitzar, publicar i gestionar projectes i notes
  • Generacio d'imatges IA: integracio amb MiniMax per generar covers automaticament des del gestor
  • MCP per a agents: endpoint Model Context Protocol que permet als agents Hermes interactuar amb el portfolio
  • Build automatitzat: pipeline de generacio del web Astro amb deteccio de canvis
  • Bilingue: suport complet catala-castella amb system de traduccions
  • Portfolio MCP endpoint: API dedicada per a agents amb control d'escriptura separat

Arquitectura

Dividit en tres components: website (Astro amb Tailwind, content collections bilingues), project-manager (FastAPI backend amb SQLite, API REST, MCP, generacio d'imatges), i el sistema de desplegament automatitzat via Docker. La comunicacio entre components es fa via filesystem compartit i API REST.

Dificultats principals

  • Disseny del gestor: crear una API REST que cobreix totes les operacions CRUD amb concurrencia segura (If-Match amb revision hash)
  • Generacio d'imatges: integrar un proveidor d'imatges IA que generi covers coherents
  • MCP per a agents: dissenyar un endpoint MCP que sigui segur pero flexible per als agents
  • Astro content collections: configurar el sistema de continguts bilingue amb schemas Zod estrictes

Solucions

  • API REST amb If-Match/ETag per a concurrencia segura, backend separa frontmatter de body
  • Integracio amb MiniMax per a generacio d'imatges via endpoint intern
  • MCP endpoint amb control d'escriptura separat (PORTFOLIO_MCP_GLOBAL_WRITE_ENABLED)
  • Schemas Zod per a validacio estricta amb categories, projectType i visual definits

Aprenentatges

  • Astro content collections es potents pero necessiten schemas ben definits des de l'inici
  • L'If-Match/ETag es essencial per a edicio concurrent de continguts
  • Un gestor propi dona flexibilitat que un CMS generic no ofereix per a use cases especifics