Von Hugo zu HTML: Warum einfacher manchmal besser ist
## Die Frustration mit Hugo
Vor kurzem habe ich meine erste Website mit Hugo erstellt. Das klang in der Theorie großartig: Markdown schreiben, Hugo generiert statische Seiten, fertig. In der Praxis war es jedoch deutlich komplizierter.
Hugo ist manchmal echt bescheuert. Klingt hart, aber nachdem ich Stunden damit verbracht habe, Build-Prozesse zu debuggen, Git-Submodules zu fixen und Cloudflare Pages Deployments zum Laufen zu bringen, kann ich das mit gutem Gewissen sagen.
## Die Probleme mit Hugo
### 1. Build-Prozess Komplexität
Hugo braucht einen Build-Schritt. Das bedeutet:
- Man muss Hugo auf dem Deployment-Server installiert haben
- Die richtige Hugo-Version muss übereinstimmen (extended vs. normal)
- Build-Scripts müssen korrekt konfiguriert sein
- Themes als Git-Submodules sind eine zusätzliche Fehlerquelle
### 2. Debugging-Nightmare
Wenn etwas nicht funktioniert, wo liegt das Problem?
$ debugging_layers=(
"Hugo-Config (hugo.toml)"
"Theme-Config"
"Build-Script"
"Cloudflare Pages Settings"
"Git-Repository Synchronisation"
)
for layer in "${debugging_layers[@]}"; do
echo "[CHECK] $layer"
# Good luck finding the actual problem...
done
Die Fehlersuche wird zum Detektivspiel durch fünf verschiedene Konfigurationsebenen.
### 3. Die "Es baut vom falschen Commit" Situation
Bei mir kam es sogar dazu, dass Cloudflare Pages von einem komplett anderen Repository-Commit gebaut hat als erwartet. Der Code war korrekt gepusht, aber die Website zeigte alte Inhalte. Das lag an falsch konfigurierten Repository-Verbindungen und Branch-Mappings.
ERROR: Cloudflare building from commit 91a455c
Expected: Latest commit 84611d2
Status: WTF IS GOING ON?!
Das war der Moment, wo ich dachte: "Das kann doch nicht sein!"
## Die Lösung: Back to Basics
Meine Lösung war radikal einfach: Zurück zu purem HTML, CSS und JavaScript.
### Was ich gemacht habe:
$ tree my-new-website/
my-new-website/
├── index.html
├── about/
│ └── index.html
├── projects/
│ ├── index.html
│ └── project1.html
├── css/
│ └── style.css
└── js/
└── main.js
✓ Alle Hugo-Markdown-Dateien zu HTML konvertiert
✓ Poison Theme in reines CSS nachgebaut
✓ Dark Mode mit JavaScript + localStorage
✓ Responsive Design mit CSS Media Queries
### Die Vorteile:
- ✓ Kein Build-Prozess: HTML wird direkt deployed
- ✓ Einfaches Debugging: Browser DevTools zeigen sofort, was los ist
- ✓ Volle Kontrolle: Jede Zeile Code ist von mir und verständlich
- ✓ Schnellere Deployments: Keine Build-Zeit, nur Upload
- ✓ Weniger Abhängigkeiten: Keine Hugo-Version, keine Themes, keine Submodules
## Wann macht Hugo Sinn?
Fairerweise muss ich sagen: Hugo ist nicht grundsätzlich schlecht. Es macht Sinn für:
- Große Blogs mit hunderten Artikeln
- Teams, die hauptsächlich in Markdown schreiben wollen
- Projekte mit komplexen Taxonomien und Tags
- Wenn man das Build-Setup einmal richtig eingerichtet hat
Aber für eine kleine Portfolio-Website mit 3-4 Seiten? Total overkill.
## Mein Fazit
Manchmal ist die einfachste Lösung die beste. HTML, CSS und JavaScript sind seit Jahrzehnten bewährt und funktionieren einfach. Kein Build-Prozess, keine versteckten Konfigurationen, keine Deployment-Magie.
Die Website, die du gerade liest, ist komplett in HTML/CSS/JS geschrieben. Sie sieht genauso aus wie die Hugo-Version, funktioniert genauso, aber ist 10x einfacher zu warten und zu deployen.
💡 Lesson learned:
Bevor man zu einem Static Site Generator greift, sollte man sich fragen: Brauche ich das wirklich? Oder macht reines HTML/CSS/JS nicht auch den Job?
Diese Website ist das lebende Beispiel: Einfach, wartbar, und funktioniert perfekt ohne Hugo-Overhead.