Veröffentlicht: 01.03.2023

Bye Bye WordPress, hallo Astro

Ich betreibe diese Webseite jetzt schon eine ganze Weile und bisher habe ich hierzu ausschließlich WordPress inkl. verschiedener Add-ons genutzt. Damals die (mutmaßlich) einfachste Möglichkeit, einen Blog zu betreiben, hat sich die Welt ein wenig weiter bewegt und der Trend geht hin zu weniger dynamischen Seiten.

Da ich mich die letzte Zeit wieder mehr mit den verschiedenen Frameworks und Tools auf dem Markt beschäftigt habe, war dies eine gute Gelegenheit, die neuen Trendtechniken mal in Aktion auszuprobieren.

Ich bin also daher gegangen und habe verschiedene Frameworks getestet und geschaut, ob sie meinen Ansprüchen gerecht werden und ob sich meine Homepage damit möglichst einfach umsetzen lässt. Als Fan von golang habe ich mir natürlich als erstes Hugo angesehen, welches auf dem Papier bzw. Monitor einen guten Eindruck macht. Letztlich hat mich aber die vergleichsweise umständliche Integration von aktuellen CSS-Frameworks davon abgehalten, die Seite damit umzusetzen.

Beim weiteren Probieren bin ich dann auf Astro gestoßen und wie nicht anders zu erwarten ist das Zusammenspiel eines Javascript-Frameworks mit anderen Javascript basierten Frameworks ungleich einfacher. Ich habe mir also die Arbeit gemacht und meine Webseite inkl. der bisherigen Blog-Beiträge mittels Astro umgesetzt. Das Ergebnis könnt ihr hier betrachten.

Großen Wert habe ich darauf gelegt, dass alles bei mir auf dem Server läuft und keine Drittserver in Anspruch genommen werden. Die Webseite nutzt aus diesem Grund die folgenden Komponenten:

  • Astro für die Erzeugung der Seiten und zur Verwaltung der Inhalte.
  • Tailwind CSS + daisyUI für die Gestaltung.
  • Markdown + MDX für die Blog-Inhalte.
  • Vue.js für die Lightboxen und weitere zukünftige Funktionen.
  • Golang für die Aktualisierung der Seite
  • libvips für die Erzeugung von Thumbnails (ich weiß, das kann Astro auch direkt 😀)
  • Remark42 für die Kommentarfunktion im Blog.
  • Plausible für das Besuchertracking.
  • Caddy als Webserver für die statischen Inhalte.

Alle Komponenten laufen auf dem gleichen System als Docker Container.