Alle Artikel
8 Min. Lesezeit

Ich habe meine Website komplett mit KI gebaut. Das ist wirklich passiert.

Ich habe an einem Wochenende eine echte Produktiv-Website mit KI gebaut. Null Zeilen Code von Hand. Und die Lektion ist das Gegenteil von dem, was du erwartest: Der schwierige Teil war nie die KI. Der schwierige Teil war ich.

Alle reden über KI-Coding, meist als "schau, ich hab ChatGPT eine Todo-App schreiben lassen". Das hier ist die ehrliche Version eines echten Projekts: zweisprachig, KI-gestützte Personalisierung, geschützter Chat, Datenbank-Tracking, eigene Domain, SEO. Gebaut mit Claude Code, dem KI-Werkzeug, das nicht nur Text vorschlägt, sondern selbst Dateien ändert und Befehle ausführt. Was funktionierte, was kaputtging, und was ich beim nächsten Mal anders machen würde.

Wie es anfing (nicht wie geplant)

Ich hatte nicht vor, eine Website zu bauen.

Es war ein Freitagabend. Ich hatte gerade KIRA aufgesetzt, ein persönliches KI-Agenten-System, an dem ich herumgebastelt hatte. Sechs spezialisierte KI-Agenten, jeder mit einer Rolle: Recherche, Strategie, Content, Analyse. Ich wollte herausfinden, wie weit man KI-Orchestrierung als persönliches Werkzeug treiben kann. Irgendwo in dem Prozess las ich einen Substack-Artikel über das "agentic web", die Idee, dass persönliche KI-Agenten dich online vertreten könnten, Fragen beantworten, Interaktionen übernehmen.

Da landete der Gedanke: Was, wäre meine Website selbst ein KI-Agent? Keine statische Seite mit Lebenslauf. Eine Website, auf der eine KI, die meinen Werdegang kennt, mit Besuchern sprechen kann, ihre Fragen beantwortet, ihre Inhalte anpasst. Eine Website, die beweist, dass ich die Technologie verstehe, indem sie die Technologie ist.

Ich schrieb Claude: "Ich würde gern meine eigene Website aufsetzen." Die KI antwortete: "Verstanden. Ich höre auf, Fragen zu stellen, und fange an zu bauen."

Drei Tage später hatte ich eine Produktiv-Website. Aber der Weg von der Idee bis zum Launch war alles andere als glatt.

Die Zahlen

Volle Transparenz, was das wirklich gekostet hat:

  • Zeit: 3 Tage. Freitagabend bis Sonntagnacht. Vielleicht 15 Stunden echte Arbeit, verteilt auf 4 Sessions.
  • Tokens: Rund 15 Millionen Tokens über alle Sessions. Das entspricht ungefähr 50 Romanen an gelesenem und geschriebenem Text.
  • Kosten: Etwa 60-80 Dollar API-Nutzung für Claude Code (Opus-Modell). Weniger, als ein Freelancer pro Stunde nimmt.
  • Code: ~7.000 Zeilen in 93 Dateien. 51 Commits. Null Zeilen von Hand geschrieben.
  • Ergebnis: Eine Produktiv-Website mit Features, für die ein einzelner Entwickler Wochen bräuchte.

15 Millionen Tokens für eine persönliche Website klingt irre. Aber KI-Coding ist nicht "Code einmal schreiben". Es ist ein Gespräch. Claude liest eine Datei, schlägt eine Änderung vor, ich sage "das stimmt so nicht", es liest die Datei nochmal, versucht es anders, liest drei weitere Dateien für Kontext, generiert neuen Code, ich sage "näher dran, aber mobil sieht es kaputt aus", es schaut sich den Screenshot an, passt an. Jede Iteration vervielfacht die Tokens. Die Intelligenz ist billig. Die Iteration ist teuer.

Drei Gehirne, ein Projekt

Ich habe nicht für alles dasselbe Modell benutzt. Die Website läuft auf drei verschiedenen Claude-Modellen: Opus (das größte) hat über Claude Code den Code gebaut, Sonnet (Mittelklasse) betreibt den Chat und die Seiten-Personalisierung, Haiku (das kleinste) übernimmt schnelle Einmal-Fragen. Jede Aufgabe bekommt das Gehirn, das sie verdient. Opus für eine Rückfrage zu nehmen wäre, wie einen Senior-Architekten zum Wändestreichen zu holen.

Die Kehrseite: Claude Code läuft auf Opus, und mit einem Abo erreichst du die Token-Grenzen schnell. Mehrmals war ich mitten im Flow, beim Bugfixen, und wurde abgeschnitten. Warten, zurückkommen, Kontext neu erklären. Die KI verliert keine Geduld. Aber Momentum ist real, und es zu verlieren kostet mehr als Tokens.

Wo es chaotisch wurde

Der Hamburger-Menü-Vorfall. Auf dem Handy deckte das Navigations-Overlay nicht den ganzen Bildschirm ab. Dahinter war Content sichtbar. Klingt simpel, oder? Der Fix brauchte drei Anläufe. backdrop-blur auf dem übergeordneten Nav-Element erzeugt in CSS einen neuen Containing Block, und der bricht fixed-Positionierung bei den Kindern. Der eigentliche Fix: das gesamte Nav-Element bildschirmfüllend machen, wenn das Menü offen ist. Gar kein verschachteltes Overlay. Claude fand das, nachdem ich mehrfach gesagt hatte "es geht immer noch nicht". KI wird nicht frustriert. Ich schon.

Das Chat-Sprachproblem. Die Website ist zweisprachig (Deutsch/Englisch). Der Chat antwortete immer auf Englisch, auch in der deutschen Version. Der Grund: locale wurde nie vom Frontend an die API durchgereicht. Es existierte in der Komponente, existierte im Hook, existierte in der API-Route. Niemand hat es weitergegeben. Vier Dateien brauchten je eine Zeile. Klassischer Integrationsfehler, der nichts mit Intelligenz zu tun hat und alles mit Klempnerarbeit.

DNS-Hölle. Domain bei Cloudflare gekauft. Deployment auf Vercel. Die Root-Domain funktionierte sofort. Die www-Subdomain? Nichts. Stundenlang. Es stellte sich heraus: CNAME-Propagation ist langsamer als A-Records, und ich verbrachte 20 Minuten mit der Frage, ob ich etwas falsch konfiguriert hatte, als die Antwort schlicht "warten" war. Nicht jedes Problem hat eine technische Lösung. Manchmal ist die Lösung Geduld.

Das Admin-Dashboard, dreimal. Erste Version: eine flache Liste von Datenbankeinträgen. Hässlich, schwer zu lesen. Zweite Version: besseres Layout, aber die Onboarding-Nachrichten erschienen als rohe API-Eingabe. VISITOR'S NAME: Theo WHAT THEY TOLD ME ABOUT THEMSELVES: "Tester". So liegen sie in der Datenbank. Dritte Version: nach Besuchern gruppiert, in lesbare Felder zerlegt, Chat-Nachrichten mit den eigentlichen Fragen hervorgehoben.

Ich schaute es immer wieder an und sagte "das ist es noch nicht". Claude baute es immer wieder neu. Die KI hat keinen Geschmack. Ich schon. Das ist die Arbeitsteilung.

Die KI kennt meinen Lebenslauf. Sie kennt meine Geschichte nicht.

Ich habe Claude detaillierte Markdown-Dateien über meinen Werdegang gegeben. Zeitlinien, Projekte, Zahlen, Ergebnisse. Alles, was es brauchte. Und es hat sie benutzt. Aber "Fakten benutzen" und "die richtige Geschichte erzählen" sind zwei verschiedene Dinge.

Es nahm eine echte Leistung und rahmte sie falsch. Blähte eine Zahl auf. Verschmolz zwei Projekte zu einem. Behauptete, ich sei seit zwei Jahren in meiner aktuellen Rolle, dabei ist es nicht mal eins. Stellte etwas, womit ich gerungen habe, als glatten Erfolg dar. Die Fakten standen in den Dateien. Die Interpretation war nicht immer das, was ich meinte.

Das meiste habe ich erwischt. Aber mir wurde klar: KI kann deine Geschichte schreiben, aber sie kann nicht wissen, welche Version davon wahr ist. Dafür braucht es einen Menschen, der jeden Satz nochmal liest und fragt: "Ist das wirklich so passiert?"

Das Profilbild, das 1,4 MB kostete

Das Profilfoto war ein 1,4-MB-PNG. Auf einer Website, die schnell sein soll. Beim Entwickeln fiel das niemandem auf, weil lokal alles sofort lädt. Das SEO-Audit hat es markiert. Konvertiert zu WebP: 26 KB. Gleiche Qualität. 98 Prozent kleiner. Die Sorte Ding, die im Rückblick offensichtlich ist und beim Bauen unsichtbar.

Gelernt: Was ich anders machen würde

1. Den Umfang vorher festlegen. Die Website wuchs organisch von "ich experimentiere mal mit KI-Agenten" zu "vollständige Produktiv-Website mit Admin-Dashboard, Security-Härtung und SEO-Optimierung". Im Moment ist das aufregend, aber ich habe Zeit in Features gesteckt, die ich noch nicht brauchte. Ein Admin-Dashboard am ersten Tag? Für eine Website mit null Besuchern? Nächstes Mal: erst den Kern liefern, Features dann, wenn es einen Grund gibt.

2. Die KI nicht das Tempo bestimmen lassen. Claude baut begeistert immer weiter. Noch ein Feature, noch ein Refactoring, noch eine Verbesserung. Es weiß nicht, wann Schluss ist. Mehrmals habe ich mich in Kaninchenlöchern wiedergefunden, weil die KI etwas vorschlug und ich "klar, warum nicht" sagte. Die Antwort auf "warum nicht" ist immer: Zeit. Nächstes Mal: eine schriftliche Liste, was im Umfang ist und was nicht, vor dem ersten Prompt.

3. Inhalte früher und gründlicher prüfen. Die KI hat Website-Texte generiert, Abschnittstitel, Beschreibungen. Das meiste habe ich geprüft. Aber einiges rutschte durch, das nicht nach mir klang oder meine Erfahrung subtil verzerrte. Inhalte zu reparieren, nachdem sie in mehrere Komponenten verwoben sind, ist schwerer, als sie vorher in einem eigenen Dokument richtig hinzubekommen. Nächstes Mal: alle Inhalte in einer einzigen Markdown-Datei schreiben, gründlich prüfen, und die KI dann die Oberfläche drumherum bauen lassen.

4. Token-Limits einplanen. Ich bin mehrfach an die Abo-Grenze von Claude Code gestoßen, immer im ungünstigsten Moment. Mitten im Bugfix, mitten im Deployment, mitten im Security-Review. Die KI verliert beim Pausieren keinen Kontext. Du schon. Nächstes Mal: Arbeit in abgeschlossene Sessions aufteilen. Nichts anfangen, das drei Stunden am Stück braucht, wenn nach einer Schluss sein könnte.

5. Von Anfang an mobil testen. Jedes Layout-Problem war ein Mobil-Problem. Das Hamburger-Menü, das zentrierte Profilfoto, Textüberlauf. Ich baute am Laptop und schaute auf Laptop-Bildschirme. Nächstes Mal: nach jeder visuellen Änderung mobil prüfen, nicht am Ende.

6. Die Modelle früher trennen. Drei verschiedene Claude-Modelle für verschiedene Aufgaben war die richtige Entscheidung, aber ich kam durch Versuch und Irrtum dahin. Opus für Code, Sonnet für Chat, Haiku für schnelle Fragen. Der Kostenunterschied ist gewaltig. Nächstes Mal: die Modell-Aufteilung vorab als Teil der Architektur festlegen.

7. Der KI-Version deiner Geschichte nicht trauen. Das ist der große Punkt. KI ist hervorragend darin, Text zu erzeugen, der richtig klingt. Sie ist schlecht darin zu wissen, ob der Text deiner Erfahrung treu ist. Jeder Inhalt über mich brauchte eine sorgfältige Lektüre. Nicht wegen Grammatik oder Stil, sondern wegen Richtigkeit. Habe ich das wirklich gemacht? Waren es wirklich so viele? Ist es so gelaufen? Nächstes Mal: KI-generierte persönliche Inhalte behandeln wie den ersten Entwurf eines Ghostwriters, der gut recherchiert hat, aber nicht dabei war.

Worin KI gut ist (und worin nicht)

KI ist gut darin:

  • Boilerplate-Code schnell zu schreiben. API-Routen, Datenbankschemata, Metadaten. In Sekunden fertig.
  • Framework-Details zu kennen. "Wie behandelt Next.js 16 Metadaten für Client-Komponenten?" Claude weiß es einfach.
  • Stumpfe Refactorings zu erledigen. x-forwarded-for zu x-real-ip über 7 API-Routen ändern? Ein Prompt.
  • Security-Reviews. Die KI fand Timing-Probleme beim Vergleichen und IP-Spoofing-Vektoren, auf die ich nicht gekommen wäre.
  • Nicht müde zu werden. In Stunde 6 ist die KI so scharf wie in Stunde 1. Ich nicht.

KI ist nicht gut darin:

  • Zu erkennen, wenn etwas falsch aussieht. Jedes Layout-Problem war ich, der auf einen Screenshot schaute und sagte "das ist schief".
  • Content-Entscheidungen zu treffen. "Soll das eine Geschichte sein oder eine Liste?" "Ist das zu selbstbeweihräuchernd?" "Klingt das nach LinkedIn-Sprech?" Alles ich.
  • Aufzuhören. KI fügt immer weiter Features hinzu, verbessert Code, refactort. Sie weiß nicht, wann man liefern muss. Ich schon.

Die eigentliche Lektion

Die Website ist live auf adrianfoehl.com. Sie hat KI-Personalisierung, einen geschützten Chat, zweisprachige Inhalte, Datenbank-Tracking, ein Admin-Dashboard, SEO-Optimierung und Security-Härtung. 15 Millionen Tokens. ~7.000 Zeilen Code. 51 Commits. Ein Wochenende. Null Zeilen von Hand.

Aber das, was ich wirklich gelernt habe: Technologie scheitert nie an der Technologie.

Das Hamburger-Menü ging wegen einer CSS-Containing-Block-Regel kaputt. Der Chat sprach wegen eines fehlenden Parameters die falsche Sprache. Das DNS funktionierte wegen Propagations-Timing nicht. Das Admin-Dashboard war hässlich, weil niemand gefragt hatte: "Was muss der Nutzer hier eigentlich sehen?"

Jedes einzelne Problem war ein menschliches Problem. Verstehen, was Nutzer brauchen. Wissen, was man baut. Entscheidungen treffen, die die KI nicht treffen kann. Geschmack haben.

Mit KI habe ich schneller gebaut. Aber das Schwere war nie das Bauen. Es war zu wissen, was man baut, wann man aufhört, und ob das Ergebnis wirklich gut ist.

Genau das sage ich Organisationen jeden Tag: KI ist nicht der schwierige Teil. Du bist es.