Building a Portfolio with Astro
Every developer eventually faces the portfolio dilemma: do you spend weeks building the perfect site, or just ship something? I went with the latter.
Why Astro
Astro’s pitch is simple — ship zero JavaScript by default. For a content site like a portfolio, that’s exactly what you want. Pages load instantly because there’s nothing to parse or execute on the client.
The setup
The stack is intentionally boring:
- Astro for the framework
- Tailwind CSS for styling
- Markdown for content
No React, no Vue, no state management. Just HTML that gets served as-is.
Design philosophy
I wanted the site to feel like a well-formatted document. Single column, generous whitespace, monospace headings. The kind of site where the content does the talking.
// Sometimes the simplest code is the best code
const greeting = "Hello, world";
console.log(greeting);
“Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.” — Antoine de Saint-Exupéry
That quote basically sums up the entire design process.