Hugo — Erfahrungsbericht

Micha | 08.07.2022

Ausgangslage

Unsere alte Firmen-Homepage nervte, gewaltig! Damals, vor über einer Dekade, war es noch hipp, okay — sagen wir normal, selbst für die kleinsten Seiten ein Content-Management-Framework (CMF) zu benutzen und die Wahl fiel seinerzeit auf ModX Version Eins Punkt irgendwas, Codename Evolution, zusammen mit einem handgestrickten Layout. Hinterher ist man immer schlauer, aber dass dieses System noch nicht mal seinen zweiten Evolutionsschritt gemacht hatte, war ziemich schnell klar, nicht zuletzt durch die damals kurz darauf erschienene Version Zwei, Codename Revolution. Dass nach einer Revolution alles ganz anders ist, kommt häufiger vor, in diesem Fall war es nicht anders, also hatten wir den Upgrade zunächst auf unbestimte Zeit verschoben. (Spoiler: Wir haben diesen Upgrade nie gemacht.) Zur Rechtfertigung für ein dutzend statischer Seiten ein CMF zu benutzen kann ich guten Gewissens sagen, dass wir damals die Ideen verfolgten, einen im Layout passenden kleinen Technik-Blog zu führen sowie ausgewählte Kundenprojekte kurz vorzustellen (Fallstudien). Eine gewisse Dynamik mit entsprechender UI brauchten wir also.

Die Realität ist oft ein härteres Brot. Pflegten wir am Anfang wenigstens noch die Fallstudien, zählte der Technik-Blog mit den Jahren 1 (einen) Eintrag. Da wir zunächst den Kommentar eingeschaltet hatten und nicht auf die Moderation achteten, hatte dieser Blog-Eintrag eine wirklich beachtliche Anzahl von Reaktionen und Kommentaren, es müssen Hunderte gewesen sein. Die meisten Sprachen verstanden wir nicht, aber irgendwas mit Viagra ist in jeder Sprache gleich verständlich. Dazu die damals üblichen Erbschaften aus Nigeria und der sonstige Müll. Kommentare ausgeschalten, fertig.

Der anfängliche Ehrgeiz wurde vor allem ausgebremst durch die Bedienoberfläche. Als Informatiker scheut man sich nicht, sehr technisch an die Sache ran zu gehen, wenn die UI das will und wenn es denn funktioniert. Hat es gefühlt bei ModX nie. Jeder Änderung, jeder Eintrag, jeder Link und jeder Bildverwendung darin waren eine einzige Qual und die Ergebnisse dürftig, wenn es überhaupt klappte. Zudem war das Verständnis für das Funktionsprinzip ziemlich flüchtig. Wollte man dann doch nach ein paar Wochen etwas verfassen, war neben dem Gefühl der Genervtheit vor allem die große Frage: wie ging das fuck nochmal. Zu diesen Mängeln kamen noch zwei gravierende Umstände hinzu.

  • Das CMF war massiv angreifbar, was unser Watchdog (und der des Hosters) regelmäßig mit einem Bericht über Schädlingsbefall bewies. Einfache Lösung: Sicherung zurückspielen, Datenverlust gleich Null, hat sich sowieso nie etwas geändert, aufgewendete Zeit und Aufmerksamkeit dafür zu viel.
  • Die Seite an sich sah auf Standard-Desktop-Browsern ganz nett aus, wenigstens am Anfang. Auf mobilen Endgeräten war die Seite eine einzige Katastrophe.

Was mir übrigens nach all den Jahren immer noch gut gefiel, waren die ‘alten’ Texte der einzelnen Seiten, sie waren nicht wirklich alt, im Gegenteil, im Wesentlichen immer noch zutreffend. Die Zeit und das Engagement dafür hatte sich gelohnt.

Jamstack und Hugo

Dass für uns eine statische Seite vollkommen ausreicht, war ziemlich schnell klar. Was tun? Was ist das richtige Werkzeug dafür? Der Begriff Jamstack geisterte schon länger durch unsere Firmen-Diskussionen, aber um ehrlich zu sein wurde mir das Potential einer solchen Lösung und der Sexyness-Faktor für Menschen wie uns, die auf Kommandozeile zuhause sind, erst klar durch einen Vortrag über Jamstack/Hugo auf dem RC3 (Remote Chaos Congress 2021). Ab da war ich ziemlich angefixt. Trotzdem dauerte es noch Monate, bis ich ein wenig Zeit fand, mir selbst ein Bild der Lage zu machen. Mein Plan war, Hugo und seine Alternativen kurz zu evaluieren und im besten Falle eine “Hello World”-Seite zum Laufen zu bringen, mit diesem Eindruck aus der Praxis dann eine aussagekräftigere Meinung für weitere Diskussionen zu haben um endlich eine Entscheidung über die Homepage zu treffen und diese umzusetzen. Es kam anders und das ziemlich schnell.

Die Installation von Hugo war trivial, genauso das erste Generieren einer Default-Seite als Ausgangsposition. Etwas aufwendiger war es, ein passendes Template für unsere Zwecke zu finden. Das Angebot der freien ist bereits sehr groß, hinzu kommen noch unzählige kommerzielle Angebote. Zwei Templates waren schnell durchprobiert, ich bin erstmals mit der Konfigurationsdatei von Hugo in Berührung gekommen, ziemlich einfach, und habe die beiden wieder verworfen, weil ich kein gutes Gefühl dabei hatte. Noch ein drittes Template geholt (git clone) und voila, das gefiel mir und bietete in etwa die Funktionen, die wir brauchen, nicht mehr und nicht weniger.

Ich erstellte eine erste Seite, indem ich einen bisherigen Text kopierte und mit wenigen Griffen in ein passendes Markup-Format brachte. Sehr einfach und das Ergebnis wird sofort, laufender Hugo vorausgesetzt, dargestellt. Alles sehr einfach, ich wiederhole mich, und praktisch. Die zweite Seite kopiert, die grundsätzliche Struktur festgelegt, eine weitere Seite kopiert. Das Ganze machte ziemlichen Spaß. Die Texte mussten fürs Erste nur etwas redaktionell überarbeitet werden, die Überschriften und Richtungen passten immer noch. Zwischendurch habe ich den aktuellen Stand regelmäßig in ein neues Git-Repository gesichert, eine Versionierung macht immer ein gutes Gefühl. Wenige Stunden später war die komplette Seite zu Hugo migriert, alle wesentlichen Parameter waren gesetzt, das Template habe ich an verschiedenen Stellen für uns angepasst (Farbe, Footer, kleinere Extrawünsche). Wer hat Angst vor css und anderen Style-Dateien? Das Blog-System ist einfach zu bedienen, die Fallstudien können also wieder aufgenommen werden. Fürs Techie-Blogging benutzen wir doch lieber Twitter und anderes.

Deployment und Fazit

Da alles besser war als der Ist-Zustand unserer Homepage, war mein hinzugezogener Kollege sofort beindruckt und überzeugt. Er verdrahtete Veröffentlichungsverzeichnis und SubDomain, ein Skriptchen hier eine Verbesserung da und am frühen Abend war die neue Homepage online.

Von der Hugo-Installation zum ersten Rollout vergingen keine zwei Tage, aus der geplanten Evaluierung wurde eine komplette Migration und Alle sind glücklich und zufrieden. Mal sehen, was ich in einem Artikel in zehn Jahren darüber schreiben werde.

Jetzt schreibe ich: Respect Jamstack, Respect Hugo!