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