Santiago Mora
Español
Blog

Published on May 31, 2026

Why I picked Astro for my portfolio

Notes on the technical decisions behind this site and why Astro fits perfectly for static content.

AstroPerformanceSSG

Building a portfolio seems simple until you start making decisions. SSR or SSG? React, Vue, or plain HTML? CMS or local files?

After trying a few options, I became convinced that Astro + Islands is the best combination for this use case. Here’s the reasoning.

The problem with traditional frameworks

SPA frameworks (React, Vue, Svelte) are great for interactive applications, but for static content like a portfolio they’re overkill:

  • They ship a large JS bundle even though 90% of the page doesn’t need it
  • Content can’t be cached granularly
  • SEO depends on SSR or pre-rendering

What Astro does well

Astro solves this with its islands architecture:

  • Pages render to static HTML at build time
  • Only the components that need interactivity get hydrated
  • The JS shipped to production is minimal

Tailwind v4: better than v3

The new version uses CSS-first config with @theme instead of a JS file. Result:

  • Faster build
  • No extra PostCSS step
  • Typed CSS variables

Result

The final site ships ~30KB of JS on the home, against 200KB+ with a traditional Next.js or Vite + React setup.

Sometimes the best technology is the one that lets you ship nothing.