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.
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.