Drei bis vier Stunden. So lange hat es gedauert, von der ersten Idee bis zum ersten veröffentlichten Artikel auf diesem Blog. Kein Webdesigner, kein Agenturbudget, kein wochenlanger Planungsmarathon. Stattdessen: ein Gespräch mit Claude, GitHub Copilot als Coding-Agent und eine Handvoll automatisierter Workflows.
Dieser Artikel beschreibt wie das konkret funktioniert hat — und was das über die Art zu arbeiten aussagt, die ich KIGIL nenne.
Die Ausgangslage
Ich wollte einen persönlichen Blog. Keine komplizierte Anforderung — aber wer kennt es nicht: Man fängt an, Optionen zu vergleichen, Themes zu bewerten, Hosting-Entscheidungen zu treffen, und am Ende des Abends hat man drei Browser-Tabs offen und noch nichts gebaut.
Diesmal anders. Ich habe Claude gefragt: “Lass uns einen Blog planen. Startseite mit Hero, verschiedene Themen, modernes Dark-Theme.” Und dann haben wir einfach angefangen.
Der Stack
Bevor wir ins Detail gehen, kurz die verwendeten Komponenten:
- Ghost 6 — das CMS. Open Source, selbst gehostet, gebaut für genau diesen Use-Case: persönlicher Blog, Newsletter, SEO out-of-the-box.
- Docker + Docker Compose — Ghost und MySQL laufen als Container auf einem Hetzner VPS.
- Nginx Proxy Manager — Reverse Proxy mit automatischem Let’s Encrypt SSL. Konfiguration komplett über eine Web-UI, kein manuelles Nginx-Config-Schreiben.
- GitHub — Repository für das Custom Theme, Branch Protection, Pull Requests.
- GitHub Actions — automatisches Deployment: jeder Merge auf
mainpackt das Theme als ZIP und lädt es über die Ghost Admin API direkt hoch und aktiviert es. - GitHub Copilot Agent — arbeitet GitHub Issues ab, schreibt Code, erstellt Pull Requests.
- Claude (Sonnet 4.6) — Planungspartner, Architekturentscheidungen, Debugging, Dokumentation, dieser Artikel.
Der Workflow: Von der Idee zum Deployment
Das Besondere an diesem Projekt war nicht eine einzelne Technologie — sondern wie sie zusammengespielt haben.
1. Planung mit Claude
Am Anfang stand kein Ticket-System und kein Pflichtenheft. Sondern ein Gespräch. Claude hat auf Basis meiner Anforderungen eine Systemarchitektur vorgeschlagen, die Tech-Stack-Entscheidung begründet (Ghost statt Wagtail — richtig, wie sich herausgestellt hat), und direkt eine strukturierte Installationsanleitung für meinen spezifischen Server-Setup generiert.
Das Ergebnis: 9 GitHub Issues, vollständig ausformuliert mit Akzeptanzkriterien, Handlebars-Templates, CSS-Snippets und JavaScript-Code. Fertig zum Übergeben an den nächsten Agenten.
2. Implementation durch GitHub Copilot Agent
Jeder Issue wurde an GitHub Copilot Agent übergeben. Der Agent liest den Issue, schreibt den Code, committed auf einen Feature-Branch und erstellt einen Pull Request — ohne dass ich eine einzige Zeile selbst getippt habe.
Das Ghost-Theme besteht aus:
- Handlebars-Templates (
.hbs) für alle Seitentypen - CSS mit Custom Properties für das Dark-Theme
- Vanilla JavaScript für das Inhaltsverzeichnis, Code-Kopier-Buttons und das Terminal-Widget
- Prism.js für Syntax-Highlighting in Code-Blöcken
3. Automatisches Deployment via GitHub Actions
Nach jedem Merge auf main läuft automatisch folgender Workflow:
- Repository auschecken
- Theme-Dateien als
.zippacken - JWT-Token aus dem Ghost Admin API Key generieren
- ZIP via Ghost Admin API hochladen und aktivieren
Das bedeutet: Ich merge einen Pull Request, und 30 Sekunden später ist die Änderung live auf angermeier.net. Keine manuellen Upload-Schritte, kein FTP, kein Cache leeren.
Was nicht funktioniert hat (und was daraus gelernt wurde)
Ehrlichkeit gehört dazu. Es war kein reibungsloser Durchlauf.
Ghost 6 Breaking Changes: Ghost 6 hat das interne Rendering von Templates gegenüber Ghost 5 verändert. In Ghost 6 brauchen post.hbs und page.hbs zwingend einen expliziten {{#post}}...{{/post}} Kontext-Block — ohne den werden alle Template-Variablen als leer gerendert. Das hat uns eine Stunde gekostet bis wir es gefunden haben. In keiner offiziellen Dokumentation stand das klar geschrieben.
GitHub Actions JWT-Authentifizierung: Die Ghost Admin API erwartet ein signiertes JWT, keinen einfachen Bearer Token. Drei Fehlversuche mit Shell-Scripting, bis wir auf eine fertige GitHub Action (whereby-us/ghost-theme-deploy) gewechselt haben. Manchmal ist die einfachste Lösung nicht die selbst gebaute.
Copilot Agent und Datei-Grenzen: Der Agent hat mehrfach Inhalte mehrerer Dateien in eine einzige zusammengeklebt. post.hbs und footer.hbs in einer Datei — Ghost quittiert das mit einem “Maximum call stack size exceeded”-Fehler. Lösung: Jeden Issue explizit anweisen, Dateien einzeln zu committen.
Das Terminal-Widget
Das Highlight der Homepage ist ein interaktives Fake-Terminal das sich beim Scrollen selbst eintippt:
$ whoami
Christian Angermeier
$ cat interests.txt
Softwareentwicklung | KI & ML | Schinken 🐷
$ cat philosophy.txt
Menschen denken und definieren.
KI strukturiert, formuliert und setzt um.
Kontinuierlicher Fluss. Keine Meetings.
$ cat current_project.txt
angermeier.net — gebaut mit Ghost, GitHub Copilot & Claude
Technisch: Vanilla JavaScript mit einem IntersectionObserver der die Animation startet sobald das Terminal in den Viewport scrollt. Zeichenweises Tippen mit konfigurierbaren Delays. Kein Framework, keine Library — 80 Zeilen reines JavaScript.
Was das über KI-gestützte Entwicklung aussagt
Drei bis vier Stunden für einen vollständigen, produktionsreifen Blog — inklusive Custom Theme, automatischem Deployment, SEO-Konfiguration und erstem Artikel.
Das wäre vor zwei Jahren nicht möglich gewesen. Nicht weil die Technologien fehlten, sondern weil der Übergang zwischen Idee, Architekturentscheidung, Implementierung und Deployment zu viele manuelle Schritte und zu viel Kontextwechsel bedeutet hätte.
Was sich verändert hat: KI-Agenten können heute nicht nur Code schreiben, sondern auch planen, strukturieren und begründen. Claude hat nicht einfach auf meine Fragen geantwortet — Claude hat den Planungsprozess mitgestaltet, Alternativen abgewogen und Entscheidungen dokumentiert.
Das ist der Kern von KIGIL: Menschen denken und definieren. KI strukturiert, formuliert und setzt um. Nicht als Ersatz für menschliches Denken — sondern als Verstärker davon.
Fazit
angermeier.net ist kein Showcase für eine einzelne Technologie. Es ist ein Beispiel dafür, was passiert wenn man aufhört, Tools einzeln zu bewerten, und anfängt sie als verbundenes System zu denken.
Ghost für Content. Docker für Isolation. GitHub für Versionierung und Kollaboration. GitHub Actions für Automation. Copilot Agent für Implementation. Claude für Planung und Architektur.
Jedes Tool macht was es am besten kann. Der Mensch entscheidet, was gebaut wird und warum.
Der Rest läuft.
Mehr davon?
Neue Artikel direkt in dein Postfach.