Desenvolupament web
Escandell Web V2 — Portfolio
Personal portfolio built with Astro and a custom project manager: REST API, AI image generation, MCP for agents, and automated deployment.
Context
The personal portfolio needed a complete renovation. The goal was to create a modern website with Astro that would serve as a project showcase, but with a proprietary content manager that would allow: easily creating projects in Catalan and Spanish, generating cover images with AI, and enabling Hermes agents to autonomously manage content via MCP.
What it does
- Project manager: Complete REST API to create, update, publish and manage projects and notes
- AI image generation: Integration with MiniMax to automatically generate covers from the manager
- MCP for agents: Model Context Protocol endpoint that allows Hermes agents to interact with the portfolio
- Automated build: Astro website generation pipeline with change detection
- Bilingual: Full Catalan-Spanish support with translation system
- Portfolio MCP endpoint: Dedicated API for agents with separate write control
Architecture
Divided into three components: website (Astro with Tailwind, bilingual content collections), project-manager (FastAPI backend with SQLite, REST API, MCP, image generation), and the automated deployment system via Docker. Communication between components is done through a shared filesystem and REST API.
Main difficulties
- Manager design: Creating a REST API that covers all CRUD operations with safe concurrency (If-Match with revision hash)
- Image generation: Integrating an AI image provider that generates coherent covers
- MCP for agents: Designing an MCP endpoint that is secure but flexible for agents
- Astro content collections: Configuring the bilingual content system with strict Zod schemas
Solutions
- REST API with If-Match/ETag for safe concurrency, backend separating frontmatter from body
- Integration with MiniMax for image generation via internal endpoint
- MCP endpoint with separate write control (PORTFOLIO_MCP_GLOBAL_WRITE_ENABLED)
- Zod schemas for strict validation with categories, projectType, and visual defined
Learnings
- Astro content collections are powerful but need well-defined schemas from the start
- If-Match/ETag is essential for concurrent content editing
- A proprietary manager gives flexibility that a generic CMS does not offer for specific use cases