The Rebirth of LetsGeek: Moving from Hugo to Astro
It’s been a busy 48 hours in the lab. After fighting with a broken Hugo theme that just didn’t fit the vision for LetsGeek, I decided to do what any self-respecting homelabber does: I nuked it and paved a new path.
Why Astro?
I wanted something that felt like modern web development—where I could use Tailwind CSS without jumping through hoops and where the CI/CD pipeline actually made sense. Switching to Astro allowed me to build a lightning-fast static site while keeping a “Cyberpunk” aesthetic that matches the soul of the project.
The Stack
- Framework: Astro 5.0
- Styling: Tailwind CSS (Neon Cyan & Pink)
- CI/CD: Self-hosted GitLab on my Proxmox Cluster
- Deployment: Automated rsync to a secure VPS
Lessons from the Pipeline
One of the biggest hurdles was getting my GitLab Runner to play nice with the new Node.js environment. I ran into an issue where the shell executor was trying to run Alpine commands (apk) on an Ubuntu host.
The Fix: Explicitly tagging the jobs for my Docker runner.
build_site:
stage: build
tags:
- docker
script:
- npm ci
- npm run build