Why I chose Astro for my portfolio
· tutorial · 1 min
Short summary of the decision.
The problem
I needed a bilingual static site with a markdown blog, project pages, Calendly embeds, and GitHub Pages deploy. All as performant as possible.
Options evaluated
- Jekyll. Native GH Pages. Ruby, older ecosystem, awkward i18n plugins.
- Hugo. Very fast but Go templates and less flexible components.
- Next.js. Familiar React, but ships lots of JS by default for a mostly static site.
- Astro. Modern SSG with native i18n, content collections, minimal JS by default.
Why Astro
- i18n out of the box with
/esand/enroutes. - Content Collections with Zod → build fails on broken frontmatter.
- Zero JS by default → easy Lighthouse 100.
- Islands for the 4 interactive things I actually need.
- Tailwind integration in one command.
More on concrete implementation in a later post.