Das neue Statisch

Das Web ist ein grossartiger Ort, sich der Welt mitzuteilen. Gleichzeitig wird es immer wieder neu erfunden. Neue Ideen führen zu neuen Technologien und die Webplattform wird immer umfangreicher. Damit die Geschwindigkeiten von Webcontent nicht darunter leidet, können neue Wege eingeschlagen werden: Zum Beispiel mit Static Site Generators (SSGs).

Ursprünglich bestand eine Webseite aus einem einfachen Ordner mit HTML-Files, welche über HTTP von einen Webserver abgerufen werden konnten. Browser waren lediglich einfache Programme, welche es ermöglichten, statische HTML-Dokumente zu betrachten.

Um dieses Problem zu lösen, begann man auf Webservern Programme laufen zu lassen, welche HTML erzeugen. Jede Seite wird für jeden Besucher auf diese Art und Weise «on-the-fly» zusammengesetzt. Während diesem Prozess werden beispielsweise bei klassischen Content Management Systemen auch Inhalte aus Datenbanken abgerufen und «dynamische» Inhalte generiert. Dies führt dazu, dass Webserver viel mehr Rechenleistung benötigen, um schnelle Ladezeiten zu gewähren.

Static Site Generators (SSGs) versprechen eine flexiblere Arbeitsweise, mehr Sicherheit für User, bessere Performance und keine hohen Anforderungen an das Hosting. Wie sie das machen? Indem die HTML-Seiten nicht bei jedem Aufruf durch einen Benutzer auf dem Server neu erstellt werden. Das Generieren der HTML-Seiten erfolgt bei Änderungen lediglich einmal, anschliessend werden die statischen Files für Besucher abgelegt.

SSGs werden häufig mit den Begriffen «JAMstack» und «Serverless» in Verbindung gebracht. In dieser Kategorie gibt es verschiedenste Services und Tools, welche SSGs unterstützen und mit SSGs generierte Seiten trotzdem «dynamisch» machen können.

Die folgende Seite ist ein übersichtliches Verzeichnis von Services und Ressourcen:
“Serverless” | CSS-Tricks

Über mehrere Monate befasste ich mich intensiv mit dem Framework Nuxt.js. Nuxt.js basiert auf Vue.js und bietet sowohl einen «Server Side Rendered» Modus, als auch einen Modus für «Statically Generated». In einem anschliessenden Projekt entstand die Webseite für eine Forschungsarbeit von Prof. Dr. Christian Hauser (Verantwortungsvolle Unternehmensführung in Lateinamerika): https://csr-la.net/

(bae)

Kritik
von Ramon Kratzer

Ausgangslage

Bei dem Projekt handelt es sich um die Online-Präsentation einer Forschungsarbeit von Dr. Christian Hauser über das Thema «Verantwortungsvolle Unternehmensführung in Lateinamerika». Die vorherige Seite wies einige Probleme und Fehler auf und die Anpassungen von Inhalten/Funktionalitäten nicht mehr möglich.

Ziel

Die neue Seite soll in erster Linie ohne Probleme und Fehler laufen und einfach bedienbar sein. Bei den Inhalten handelt es sich um statische Texte, welche nicht angepasst werden. Wichtig war, dass Besucher die Inhalte in vier Sprachen aufrufen und in einer Kapitelauswahl nach Themen und Ländern filtern können.

Vorgehen

Design
Nach dem ersten Gespräch und dem Klären der Anforderungen entwarf ich in Figma einen ersten Designvorschlag für die Inhalts- und Startseite. Nach einem weiteren Gespräch wurde dieses mit kleinen Änderungen abgenommen und ich konnte mit der Umsetzung starten.

Umsetzung
Da die Inhalte nicht geändert werden und die Seite möglichst keinen Unterhalt benötigen sollte, entschied ich mich bei der Umsetzung gegen die Verwendung eines CMS. Aufgrund des individuellen Designs kam die Verwendung eines Templates nicht in Frage. Das Utility-First CSS Framework «Tailwind CSS» ermöglichte mir einen sehr schnellen Aufbau des Grundgerüsts und der Komponenten.

Der Austausch mit dem Auftraggeber fand in relativ kurzen Abständen statt und war sehr hilfreich. Diverse Iterationen des ursprünglichen Designs kamen hinzu.

Deployment
Die Versionsverwaltung von GitHub war sehr hilfreich. Das Deployment wurde während der Entwicklung über Netlify gehandhabt. Unterschiedliche Stände der Site konnten dadurch einfach miteinander verglichen werden. Inhalte werden von Netlify über einen globalen CDN verteilt, was in Anbetracht der Thematik von Vorteil ist. Hinzu kommt, dass damit die Umleitung auf die korrekte Sprache gelöst wird.

Das Projekt konnte innerhalb des Zeitrahmens umgesetzt und veröffentlicht werden.

Schwierigkeiten

In der Entwicklung gab es natürlich immer wieder Probleme, welche nie nicht gelöst oder umgangen werden konnten. Die Erfassung der vielen Inhalte in vier Sprachen war sehr zeitaufwändig und man musste sehr genau arbeiten.

Die Seite umfasst neben den Texten viele Bilder, Videos und Karten. Es war schwierig einen Kompromiss zu finden, wie sehr Bilder komprimiert werden sollen, um schnellere Ladezeiten zu erreichen. Indem ich lazy-loading implementiert habe, verringerte sich das Problem etwas.

Fazit

Mit dem Endprodukt bin ich sehr zufrieden, obwohl ich vieles schon wieder auf eine andere Art lösen würde. Die Seite erreicht sehr gute Resultate in Performance-Tests und ich empfehle jedem, SSGs für Projekte dieser Art in Betracht zu ziehen.

Keine Kommentare

Schreibe einen Kommentar