This portfolio — built for people and AI agents
Bilingual static site with Astro, React and Tailwind, fully Dockerized, tested and auto-deployed — readable by search engines, LLMs and browser agents (WebMCP).
- Year
- 2026
- Role
- Designer & developer
- Stack
- Astro · React · TypeScript · Tailwind CSS · Docker · Playwright · Vitest · GitHub Actions

Why
Most of my work is private or belongs to clients, so this site is the one project where you can see how I build end to end — the code is public.
What’s inside
- Astro + React islands. Static HTML by default; React only where there is interaction (theme toggle, image gallery). Pages load almost no JavaScript.
- Content as data. Projects and profile live in Markdown/YAML collections validated with Zod — adding a project is adding a file, and a missing field fails the build instead of breaking the page.
- Bilingual by design. English at
/and Spanish at/es/, with per-page fallbacks,hreflang, canonical URLs and a sitemap that only lists real pages. - Readable by AI. A generated
llms.txt, JSON-LD for people and projects, and WebMCP tools so browser agents can query projects and contact details directly. - Docker-only workflow. Nothing is installed on the host: a Makefile wraps dev server, build, tests, Lighthouse and asset generation inside containers.
- Tested and audited. 100+ unit tests (Vitest) and end-to-end browser tests (Playwright) running against dedicated fixtures, plus a Lighthouse audit that fails below 95.
- Automated deploys. GitHub Actions validates, tests and publishes to GitHub Pages on every push, with a “coming soon” switch for staged launches.
Result
Lighthouse 99–100 in performance, accessibility, best practices and SEO, a design system that works in light and dark mode, and a codebase where content changes never require touching code.
Gallery
Have a similar problem?
Tell me what slows your team down. I'll reply with a first idea of how I'd approach it.