Moderne Webseiten sind Datenbankgetrieben!? Falsch. Moderne Webseiten sind Datengetrieben. Daten ungleich (!=) Datenbank. Ja, WordPress, Drupal, Joomla und Co. haben eine Datenbank als Herzstück. Bei jedem Seitenaufruf wird der Inhalt aus der Datenbank geholt, zusammengebaut und als HTML Datei dem Benutzer im Browser angezeigt. Dies bietet grösstmögliche Flexibilität fordert jedoch entsprechende Komplexität. Flexibilität welche nicht für jedes Projekt notwendig ist, Komplexität, welche nicht für jedermann erwünscht ist. Und ausserdem, die Seite wird alle paar Tage oder Wochen geändert, warum also die Rendering Arbeit jedes Mal aufs Neue machen?
Statische Seiten – Wie alles begann
Als damals in den 90er Jahren alles begann, gabs HTML und keine Javascript und kein PHP. Seiten wurden einzeln gebaut und publiziert. Strukturen wurden in Ordnern abgelegt, Redesigns wurden sehr aufwändig. Zwischen Inhalt und Design kab es keine Trennung, bis dass der Tod euch scheidet. Die statischen Seiten boten jedoch einen ausserordentlichen Vorteil:
1. Grössmöchliche Flexibilität & Individualität (oder was halt damals möglich war)
2. Straight forward, daher auch von einem nicht-Programmierer Wart- und Erweiterbar.
Fleischwolf, rödel, rödel – Static Site Generator
Einen Löffel Statische HTML Seiten mit einer Priese Datenbank ergibt Static Site Generator. Ein Static Site Generator, nimmt Dateien mit Text (als HTML oder Markdown) angereichert mit frei wählbaren Metadaten, setzt sie in ein Template und generiert daraus die Webseite. Je nach Site Generator, gibts Funktionen, um ein Pagination zu machen, Listen mit bestimmten Kategorien usw. Bei jeder Änderung wird die Seite neu generiert. Falls keine Änderungen gemacht werden, muss auch das HTML nicht aktualisiert werden.
Die Vorteile eines Static Site Generator
Die Vorteile sind schnell aufgezählt:
- Geschwindigkeit. Da lediglich ein Webserver vorhanden ist, welcher die fertig gerenderte HTML Seite ausliefert passiert das mit Lichtgeschwindigkeit. Es geht keine Zeit mit Datenbankabfragen verloren.
- Einfachheit. Templates zu erstellen sind denkbar einfach. HTML erstellen, und Template Variablen für Text einsetzen. Je nach Fähigkeiten und Kenntnissen können mehr oder weniger komplexe Strukturen gebaut werden.
- Sicherheit. Keine Passwörter, keine veraltete Versionen, einfach HTML.
- Designerische Exzellent. Korrekte Wort? Mit wenig Aufwand sehr aufwändige und Ansprechende Designs gemacht werden. Wenn ein HTML Template vorhanden ist, ist der Schritt zum Template nur noch minimal.
- Kosten. HTML Dateien können fast überall gehostet werden und die Preise dafür reichen von nichts bis sehr wenig: Dropbox, GoogleDrive und jeder beliebige Feld-, Wald- und Wiesenhoster.
- Datenhoheit. Auch für technisch weniger versierte User sind die Daten sofort vorhanden. Diese müssen nämlich nicht mühsam aus einer Datenbank gepickt werden, sondern sie liegen als einfaches Markdown Dokument: Kopieren, löschen usw. ist ein Kinderspiel und ohne technische Kenntnisse möglich.
Die Nachteile eines Static Site Generator
Jede Medaille hat auch ihre Kehrseite:
- Dynamischer Inhalt. Kommentare, Kontaktformulare bzw. benutzerspezifische Inhalte können nicht umgesetzt werden. Hier muss auf ein Drittsystem eingesetzt werden: Für Kommentare z.B. Disqus, für ein Kontaktformular Wufoo und auf benutzerspezifische Inhalte muss man verzichten. Dazu gehören auch jegliche andere «Mitmachfeatures», wie z.B. Forum, eCommerce, Gästebuch usw.: Mit einer statischen Seite nicht ohne weiteres Machbar.
- Skalierbarkeit. Meine Grösste Seite bisher umfasst 600 Artikel. Seiten mit mehreren tausend Artikeln als Statische Seite zu gestalten macht wohl eher weniger Sinn, da das Verwalten dann relativ schwierig wird. Auch wird das Generieren der Seite mehr und mehr Zeit in Anspruch nehmen, je grösser die Seite ist.
Kleine Liste an Static Site Generator
Die Liste soll bei definitiv nicht abschliessend sein, aber doch mal einen Startpunkt geben.
- Wintersmith (Node.js)
- Jekyll (Ruby)
- Phrozn (PHP, weiss nicht, ob ich PHP für so etwas einsetzen möchte)
Und jetzt?
Wie so oft: Es kommt drauf an. Eine Community Seite: Bitte Drupal. Ein Multiuser High Traffic Blog: WordPress (oder natürlich auch Drupal). Eine Portfolio Seite: Static Site Generator. Die Vereinsseite: Static Site Generator. Ein persönliches Blog: Static Site Generator. Ein ganz verrückte ausgefallene Seite: Static Site Generator.