This portfolio
A multi-page static site with a live view of my homelab, built with Astro and deployed by GitHub Actions.
Context & objective
Epitech project T-ENT-500: build a portfolio that presents my projects, my progress over the year and my experience, accessible, responsive and published automatically on GitHub Pages.
What I built
- A static, multi-page site generated by Astro from Markdown files: adding a project means adding one file.
- A Lab page that shows live metrics from my homelab through my own API, and still works when the homelab is offline.
- Automatic deployment with GitHub Actions on every push.
Challenges
- Staying useful offline. The Lab page shows live metrics, but it still has to work when the homelab is down.
- A safe public API. Publishing homelab metrics without exposing my network.
- Starting over. I dropped an early React version and rebuilt from my own HTML and CSS site, as a multi-page Astro project.
What I learned
- Astro and content files. Static generation means adding a project is just adding one Markdown file.
- CI/CD. Every push builds and publishes the site, with no manual step.
- Accessibility and SEO. Contrast, heading structure and keyboard use have to be checked, not assumed.
- Writing about my work. Explaining a project clearly is a skill of its own, as hard as building it.