Unter der Haube

Wie diese Website gebaut ist

Statisches HTML, ein Stylesheet, eine JavaScript-Datei. Kein Framework, kein Build-Schritt, kein Inhaltsverwaltungssystem und keine Anfrage an einen fremden Server. Und: geschrieben hat das keine Hand. Diese Website entsteht vollständig im Dialog mit KI, überwiegend mit Claude Code. Sie ist mein Versuchsfeld dafür, was dabei herauskommt.

Entstehung

Diese Seite ist eine Spielwiese

Sie soll nicht nur zeigen, was ich mache. Sie ist selbst der Versuch.

Ich schreibe hier keinen Code und keine Absätze von Hand. Beides entsteht im Gespräch mit einer KI, meistens mit Claude Code: Ich beschreibe, was ich will, korrigiere, verwerfe, frage nach. Was am Ende dasteht, hat die KI getippt.

Was sie nicht liefert, sind die Inhalte. Jede Erfahrung, jede Zahl und jede Einschätzung auf dieser Website stammt aus meinen eigenen Aussagen. Nichts ist ausgedacht, und alles ist belegbar: Wo mir eine Zahl fehlt, steht das im Text, statt dass eine plausible erfunden wird. Wo etwas nur meine Einschätzung ist, steht es als Einschätzung da.

Die Entwicklung darf von der Maschine kommen. Der Inhalt nicht.

Kein Text geht hier nach draußen, den ich nicht vorher gelesen habe. Ich streiche, korrigiere und weise zurück, wenn eine Formulierung mehr behauptet, als ich belegen kann. Mehrere Absätze auf dieser Website sind entstanden, weil ich einen Vorschlag abgelehnt habe, nicht weil ich ihn angenommen habe.

Das ist auch mein Verständnis davon, wie man KI sinnvoll einbindet: führen statt machen lassen. Ein Modell, das unbeaufsichtigt schreibt, produziert etwas, das plausibel klingt. Ein Modell, das geführt wird, nimmt einem die Arbeit ab, die tatsächlich Arbeit ist: tippen, umbauen, prüfen, wiederholen. Die Verantwortung für das Ergebnis wandert dabei nicht mit.

Die KI übernimmt

Die Entwicklung

Code schreiben und umbauen, Auszeichnung setzen, Diagramme zeichnen, Formulierungen vorschlagen, Zahlen messen statt schätzen, Prüfungen wiederholen, bis sie sauber durchlaufen.

Ich übernehme

Inhalt und Freigabe

Was hier steht, welche Erfahrung dahintersteht, welche Zahl stimmt, was weggelassen gehört. Und die letzte Lesung, bevor etwas online geht.

Der Rest ist Neugier. Ich probiere hier aus, wie weit das trägt: Wie sauber wird der Code? Wie lange bleibt eine Seite wartbar, die so entstanden ist? Wo fällt es auf, wo nicht? Deshalb finden sich hier Dinge, die keine Visitenkarten-Website bräuchte: eine Kommandozeile in der Fußzeile, Diagramme zum Durchklicken, ein Zeichenregen aus echten Repo-Zeilen. Nicht weil sie nötig wären, sondern weil ich wissen wollte, ob es geht.

Belegen lässt sich das nur teilweise: 19 von 90 Commits tragen eine Mitzeichnung der KI. Nicht weil der Rest von Hand entstanden wäre, sondern weil ich diese Kennzeichnung erst spät eingeführt habe. Die Historie umfasst 24 Arbeitstage seit April 2026.

Was das für dich als Leserin oder Leser heißt: Wenn dir hier etwas gefällt, ist es das Ergebnis eines Dialogs und nicht eines Auftrags an ein Werkzeug. Und wenn dir etwas nicht gefällt, war es meine Entscheidung, es so stehen zu lassen.

Gemessen

Die Zahlen

Stand 10. September 2026. Übertragungsgrößen sind die tatsächlich ausgelieferten, also nach gzip.

Was Wert Anmerkung
Seiten 25 jede eine eigene HTML-Datei
Wörter im Inhalt 22.114 ohne Navigation, Fußzeile und Auszeichnung
Fremdrequests 0 kein CDN, keine Schriftdienste, keine Zählpixel
Stylesheet 27,4 KB übertragen, aus 130,2 KB Quelle
JavaScript 24,9 KB übertragen, aus 86,8 KB Quelle
Zeichenregen 1,8 KB 141 echte Zeilen aus eigenen Repos
Schrift 17,5 KB eine Datei, selbst gehostet, VT323
Alles außer Bildern 71,5 KB einmalig, danach aus dem Cache
SVG-Diagramme 7 als Auszeichnung gesetzt, keine Bilddateien
Strukturierte Daten 27 JSON-LD-Blöcke, eine Personen-Kennung
Weiterleitungen 6 alle direkt aufs Ziel, keine Ketten
Commits 90 seit 08.04.2026

Entscheidungen

Warum es so aussieht, wie es aussieht

Jede dieser Festlegungen hat einen Grund, der nichts mit Geschmack zu tun hat.

Kein Framework

Weil es nichts zu verwalten gibt

Die Seite hat keine Anmeldung, keine Datenbank und keinen Zustand. Was ein Framework hier lösen würde, existiert nicht. Der Preis wäre ein Build-Schritt und eine Abhängigkeit, die jemand pflegen muss.

Keine Fremdrequests

Schriften und Skripte liegen hier

Kein Google-Font, kein CDN, kein Zählpixel. Die Seite kann deshalb nichts über dich an Dritte weitergeben, und sie funktioniert auch dann, wenn ein fremder Dienst gerade nicht funktioniert.

Eine Schrift im Preload

Gegen den springenden Titel

Die Terminal-Schrift der Startseite wird vorgeladen. Ohne das bricht die Überschrift zunächst mit der Ersatzschrift um und springt danach. Das war früher der größte Teil des Layoutversatzes.

Ohne JavaScript

Bleibt alles lesbar

Der Kartenstapel wird ein Raster, die Schritt-Diagramme zeigen den ganzen Ablauf, die Mailadresse steht als Text da. Nichts Wesentliches hängt am Skript, es macht Vorhandenes nur bequemer.

Diagramme als SVG

Text statt Pixel

Jedes Modell ist Auszeichnung, kein Bild, Koordinate für Koordinate im Dialog gesetzt. Es skaliert, es ist durchsuchbar, es trägt eine Beschreibung für Screenreader, und es passt sich dem Hell- und Dunkelmodus an. Eine PNG-Datei könnte das alles nicht.

Mailadresse

Steht nicht im Quelltext

Benutzer und Domain liegen getrennt in Attributen und werden erst im Browser zusammengesetzt. Ohne JavaScript bleibt eine lesbare Ersatzform stehen, denn im Impressum muss die Adresse verfügbar sein.

Offen

Was hier noch nicht stimmt

Eine Seite über die eigene Bauweise ist nur dann etwas wert, wenn auch das Unfertige drinsteht.

Es fehlt ein Cache-Control-Header. Der Server liefert ETag und Last-Modified, aber keine Angabe zur Haltbarkeit. Browser raten dann, wie lange sie eine Datei behalten dürfen. Dass die Dateinamen einen Versionsparameter tragen, macht eine lange Haltbarkeit gefahrlos möglich, sie ist nur noch nicht gesetzt.

Die Bilder sind der größte Posten. Alle Bilddateien zusammen wiegen deutlich mehr als der ganze Rest der Seite. Auf einer einzelnen Seite wird davon nur ein kleiner Teil geladen, aber die Vorschaubilder für soziale Netzwerke ließen sich weiter verkleinern.

Die Betriebszahlen im Homelab sind von Hand gepflegt. Sie stimmen, sind aber nicht aktuell, weil sie niemand automatisch schreibt. Genau das wäre der nächste sinnvolle Schritt und liegt auch nahe: die Werkzeuge dafür laufen ohnehin.

Die Datenschutzerklärung spricht von Cookies. Tatsächlich speichert die Seite nur eine Einstellung im localStorage des Browsers, nicht in einem Cookie. Beides wird rechtlich gleich behandelt, aber der Text ist ungenau und gehört nachgezogen.

Weiter

Dieselbe Arbeitsweise, an anderen Systemen

Werkstatt

Dokumentierte Systeme

Praxisberichte mit Aufbau, Zahlen und den Stellen, an denen es nicht funktioniert hat.

Homelab

Die Ebene darunter

Cluster, Speicher und Dienste, auf denen Automatisierung und Smart Home laufen.