Zum Inhalt springen

Hinter den Kulissen

Über diese Website

Die Geschichte

Ein neuer Aufbau, ein gewachsener Bestand

Die BSV-Website war technisch und inhaltlich in die Jahre gekommen. Sie sollte wieder aktuelle Informationen bieten und sich vernünftig nutzen lassen. Gleichzeitig gab es vieles, das erhalten bleiben sollte: Fotos, Festschriften, Dokumente und Vereinsgeschichte.

Eigentlich wollte ich keine weitere Vereinswebsite übernehmen und hatte zunächst auch abgewunken. Im Verein fand sich für den Neuaufbau aber niemand, der sich wirklich darum kümmern wollte. Nach einigem Überlegen habe ich die Aufgabe doch übernommen. Gereizt hat mich dabei, die Seite technisch frei aufbauen zu können. Ich wollte ausprobieren, wie gut sich so etwas heute ohne WordPress umsetzen lässt und was KI-Agenten dabei tatsächlich leisten.

Die BSV-Startseite auf einem Laptop und einem Smartphone, als Geräte-Mockup zusammengestellt.
Die Startseite auf dem großen Bildschirm und auf dem Handy. Mockup mit echten Ansichten der Website. Zum Vergrößern auf das Bild klicken.

Die Entscheidungen

Warum kein WordPress?

Mich hat interessiert, wie eine zeitgemäße Website für überwiegend statische Inhalte aussehen kann, wenn man auf den üblichen WordPress-Unterbau verzichtet.

Aus anderen Projekten kannte ich den Aufwand mit Updates, Plugins, Konfiguration und zusätzlichen Lizenzen. Für eine Seite, auf der hauptsächlich Informationen, Bilder und Dokumente bereitgestellt werden, wollte ich eine schlankere Grundlage ausprobieren.

Die Wahl fiel auf Astro. Die Seiten werden vor der Veröffentlichung als HTML erzeugt; interaktive Funktionen ergänzen sie dort, wo sie gebraucht werden. Damit verschwinden Wartung und Datenschutzfragen nicht. Aber die technische Basis passt besser zu dem, was ich hier umsetzen möchte.

Der Tech-Stack

Was hinter der Seite steckt.

Die wichtigsten Bausteine und ihre Aufgaben, ohne dass man dafür selbst programmieren können muss.

Das GrundgerüstAstro
Astro baut aus Vorlagen und Inhalten fertige HTML-Seiten. Der Server muss sie beim Aufruf nicht erst aus einer Datenbank zusammensetzen. Interaktive Funktionen kommen dort hinzu, wo sie gebraucht werden.
Die GestaltungTailwind CSS
Tailwind hilft dabei, Schrift, Farben und Abstände einheitlich zu halten. Eigene Komponenten und CSS ergänzen das Layout für Handy und Desktop.
Die BedienungTypeScript & JavaScript
Damit funktionieren zum Beispiel Kalenderansichten, Bildergalerien und Menüs. TypeScript unterstützt die Entwicklung mit Typprüfungen; im Browser läuft JavaScript.
Die InhalteMarkdown & strukturierte Daten
Viele Texte liegen als Markdown-Dateien vor, ergänzt durch festgelegte Felder für etwa Datum, Titel oder Bilder. Das trennt Inhalte von ihrer Darstellung und macht Änderungen nachvollziehbar.
Versionen und PrüfungenGit & GitHub Actions
Git hält die Änderungsgeschichte fest. GitHub Actions führt Prüfungen und Builds aus. Ein eigener Veröffentlichungsweg bringt einen ausgewählten Stand auf die geschützte Testwebsite.
Die Arbeit im HintergrundNode.js & Python
Skripte bereiten Inhalte auf, prüfen Verweise und unterstützen die Veröffentlichung. Kalender und Instagram-Beiträge werden als zwischengespeicherte Daten eingebunden, damit nicht jeder Seitenaufruf die Ursprungsdienste abfragen muss.

Für die redaktionelle Pflege ist außerdem Sveltia CMS im Projekt eingerichtet. Die Oberfläche arbeitet mit den Inhaltsdateien im Git-Repository; sie ist kein separates Datenbanksystem. Auf Staging ist das Schreiben darüber bewusst deaktiviert.

Die Arbeitsweise

Entwickelt mit KI, gestaltet nach eigenen Vorstellungen

Für die Umsetzung habe ich mir eine eigene KI-gestützte Entwicklungsumgebung aufgebaut. Darin arbeite ich mit unterschiedlichen Modellen und Agenten an der Website.

Die Erfahrung damit ist deutlich nüchterner als manches Versprechen: Agenten kosten Geld, brauchen viel Anleitung und liefern häufig erst einmal austauschbare Ergebnisse. Auch die Wahl des Modells macht einen Unterschied. Ein einzelner Anbieter hat sich für mich nicht bei jeder Aufgabe bewährt.

Gerade beim Design reichen allgemeine Aufforderungen wie „Mach es modern“ nicht. Viele Ergebnisse haben dieselben wiedererkennbaren Muster. Genau das möchte ich für diese Website vermeiden. Deshalb gebe ich die gestalterische Richtung vor, verwerfe Vorschläge und lasse nacharbeiten, bis das Ergebnis meinen Vorstellungen entspricht.

Links ein früher, noch unfertiger Stand der BSV-Website, rechts drei verworfene Design-Entwürfe aus der Versionsgeschichte.
Links ein echter früher Seitenstand, rechts drei verworfene Entwürfe aus echten Commit-Ständen der Versionsgeschichte. Zum Vergrößern auf das Bild klicken.

Eine Website muss auch morgen noch wartbar sein

Eine erste vorzeigbare Version lässt sich relativ schnell zusammenbauen. Eine Website dauerhaft weiterzuentwickeln und zuverlässig zu betreiben, verlangt weiterhin technisches Wissen.

Deshalb gehören heute nachvollziehbare Änderungen, automatisierte Prüfungen und eine getrennte Testumgebung – Staging – zu meinem Arbeitsablauf. Die Veröffentlichung läuft über eigene Workflows statt über den Zustand eines einzelnen Laptops. Auch Sicherungen und ihre Wiederherstellung gehören zur Entwicklungsumgebung.

Dabei funktioniert nicht jede Idee auf Anhieb. Manche Dinge sind schneller erledigt als erwartet, andere brauchen mehrere Anläufe. Ich probiere aus, vergleiche und ändere, was sich im Alltag nicht bewährt.

Drei verschiedene Bereiche der BSV-Website in Smartphone-Mockups nebeneinander.
Auch abseits der Startseite: verschiedene Bereiche der Website in der mobilen Ansicht. Zum Vergrößern auf das Bild klicken.

Michael Gutschmidt
Konzeption, Gestaltung und technische Umsetzung

Kontakt zur Website

Der Betrieb

Stand und Rückmeldung

Die Website wird in festen Versionen ausgerollt. Jede ausgelieferte Fassung trägt ihren aktuellen Commit aus Git. Wer hier einen Fehler findet, meldet ihn am besten mit dem abgelesenen Stand – dann lässt sich das Problem genau der Version zuordnen.

Ausgelieferter Stand
unbekannt
Fehler gefunden?
ben@mistbude.de – kurze Nachricht genügt, gern mit dem gelesenen Stand.