Blog
Mein Blog zu Webentwicklung, KI, digitaler Praxis und allem, was mich beim Bauen fürs Web beschäftigt — aus über zwei Jahrzehnten Erfahrung.
Hier schreibe ich über das, was mir in der täglichen Arbeit mit dem Web begegnet — Technik, KI, Werkzeuge und Methoden. Die Themen werden mit der Zeit breiter; den Anfang macht eine Serie zu SEO und GEO. Unten findest du alle Beiträge, neueste zuerst.
Neueste Beiträge
-
zsh installieren und einrichten: von apt bis zur schlanken .zshrc
zsh installieren, als Standard-Shell setzen und einrichten: schlank ohne Framework oder mit Oh My Zsh, mit Plugins, Prompt, Startzeiten und Deinstallation.
-
Node2Shell und die Frage danach: Wie du Node.js installierst, verwaltest und aktuell hältst
Die Brotli-Lücke in Node.js kurz erklärt, die Parallele zu PHP2Shell — und alle Wege, Node.js zu installieren und aktuell zu halten, von NodeSource bis Docker.
-
PHP2Shell: Was du jetzt tun musst — und warum statische Seiten gelassen bleiben
Zwei kritische PHP-Lücken, ein Angriff ohne Login, Webseiten offline: was hinter PHP2Shell steckt, eine Schritt-für-Schritt-Anleitung, eine Checkliste und die Lehren für die Architektur.
-
Updates für deaktivierte Plugins: Wie sich meine WordPress-Plugins gegenseitig aktualisieren
WordPress führt deaktivierte Plugins nicht aus, also auch nicht ihren Updater. Wie Updater 1.5.0 das für meine Plugin-Sammlung löst: Registry, Leader-Wahl, Prüfsummen-Sperre — am Beispiel von JPKCom Harden & Trim.
-
Eleventy-Build schneller machen: erst messen, dann optimieren
Ein Eleventy-Build mit rund 2150 Dateien, von 4:00 auf gut 1:30 Minuten — mit drei kleinen Änderungen und einem gestrichenen HTML-Minify, ohne inhaltliche Änderung der Ausgabe. Wie ich gemessen habe, welche Bremsen im Profil auftauchten und warum inkrementelles Bauen nicht die Antwort war.
-
Pagefind in der Praxis: Volltextsuche ohne Server, Datenbank und Abo
Pagefind von Einbindung bis Indizierung: Filter, Mehrsprachigkeit, Barrierefreiheit, Performance, Kosten — mit Messwerten aus zwei Projekten und klaren Grenzen.
-
Oxygen 6.2: Der WordPress-Builder, den dein KI-Agent bedient
Oxygen 6.2 öffnet den Builder für KI-Agenten: MCP-Server, Abilities API, Templates, Design-System und Interaktionen per Auftrag. Was drinsteckt, was der Changelog verrät und wo ich vorsichtig wäre.
-
Deno geht zu Cloudflare — und die Runtime hat noch ein Jahr
Das Deno-Team wechselt zu Cloudflare, Deno Deploy schließt in sechs Monaten, die Runtime bekommt noch ein Jahr Fixes. Was genau angekündigt wurde, wer betroffen ist und was du jetzt prüfen solltest.
-
Making-of: JPKCom Desktop — mein Desktop im Browser, klein und offen
JPKCom Desktop im Making-of: warum ich einen eigenen Desktop für den Browser gebaut habe — klein, schnell, barrierefrei, sicher und Open Source unter MIT.
-
Nachhaltige Websites: weniger bewegliche Teile, weniger Verbrauch
Statische Seiten, kleine Webserver wie Static Web Server, Caching und statischer Export für WordPress: Wege, Strom, Hardware, Wartung und Kosten zu sparen.
-
Hauptinhalt, Aufwand, erfundene Autoren: Googles Qualitäts-Doku vom Oktober 2026
Google hat seine Doku zu hilfreichen Inhalten erweitert: Hauptinhalt, vier Qualitätsmerkmale, erfundene Autoren. Was neu ist und was nur übernommen.
-
Die htmx-Reihe: HTML übers Netz, eingeordnet, gemessen, geprüft
Übersicht über meine dreiteilige htmx-Reihe: Einordnung gegen Unpoly und native Mittel, Sichtbarkeit für Crawler und KI, Barrierefreiheit. Mit Live-Demo.
-
htmx und Barrierefreiheit: was beim Austausch von HTML verloren geht
Ich bin mit der Tastatur durch vier Fassungen einer Demo gegangen: wohin der Fokus nach einem htmx-Tausch fällt und was du selbst regeln musst.
-
Was Crawler und KI von htmx-Inhalten sehen: eine Messung
Ich habe Prüfmarken in eine htmx-Demo gesetzt und gemessen, was curl, ein Headless-Browser und ein KI-Assistent davon sehen. Was sichtbar bleibt und was nicht.
-
htmx eingeordnet: HTML übers Netz statt JSON, und wann das die bessere Wahl ist
Ich habe denselben Veranstaltungskalender mit htmx, mit Unpoly und ohne Bibliothek gebaut: Code, Messwerte, Stolpersteine und eine ehrliche Entscheidungshilfe.
-
Redesign durch KI: Warum die JPKCom DB absichtlich nach KI aussieht
Redesign durch KI: die JPKCom DB mit Claude Code neu gestaltet — Dracula dunkel, eigene helle Palette, getestete Kontraste und bewusst im KI-Look.
-
BGH-Urteil VI ZR 144/23: Wenn dein Shop Daten an Drittanbieter schickt
Der BGH lässt Unterlassungsklagen gegen Datenweitergabe an Drittanbieter zu. Was entschieden ist, was offen bleibt und was ein Test-Shop wirklich sendet.
-
Anthropic und Bun: Die Runtime, die in deiner Claude-Code-Binary wohnt
Anthropic hat Bun gekauft, Claude Code wird als Bun-Executable ausgeliefert — und Bun 1.4 ist in elf Tagen von einer KI nach Rust portiert worden. Ich habe die Binary auf meinem Rechner aufgeschraubt und nachgesehen, was davon stimmt.
-
piplet: Wenn Programm und Daten in derselben Datei wohnen
WordPress' piplet legt seine Notizen hinter __halt_compiler() in die eigene PHP-Datei. Was der Quelltext über atomares Schreiben, Inode-Races, Validierung vor dem Parsen und optimistische Nebenläufigkeit lehrt — und was davon in eigene Projekte passt.
-
Sveltia CMS für 11ty: die Redaktionsoberfläche, die dem Generator fehlt
Ein Git-basiertes CMS als eine HTML-Datei und ein Script-Tag: Was Sveltia CMS für einen 11ty-Blog leistet, wie es sich ohne CDN selbst hosten lässt — und warum zwei Seiten der eigenen Doku beim Pfadaufbau Verschiedenes behaupten.
Archiv
2026
- zsh installieren und einrichten: von apt bis zur schlanken .zshrc
- Node2Shell und die Frage danach: Wie du Node.js installierst, verwaltest und aktuell hältst
- PHP2Shell: Was du jetzt tun musst — und warum statische Seiten gelassen bleiben
- Updates für deaktivierte Plugins: Wie sich meine WordPress-Plugins gegenseitig aktualisieren
- Eleventy-Build schneller machen: erst messen, dann optimieren
- Pagefind in der Praxis: Volltextsuche ohne Server, Datenbank und Abo
- Oxygen 6.2: Der WordPress-Builder, den dein KI-Agent bedient
- Deno geht zu Cloudflare — und die Runtime hat noch ein Jahr
- Making-of: JPKCom Desktop — mein Desktop im Browser, klein und offen
- Nachhaltige Websites: weniger bewegliche Teile, weniger Verbrauch
- Hauptinhalt, Aufwand, erfundene Autoren: Googles Qualitäts-Doku vom Oktober 2026
- Die htmx-Reihe: HTML übers Netz, eingeordnet, gemessen, geprüft
- htmx und Barrierefreiheit: was beim Austausch von HTML verloren geht
- Was Crawler und KI von htmx-Inhalten sehen: eine Messung
- htmx eingeordnet: HTML übers Netz statt JSON, und wann das die bessere Wahl ist
- Redesign durch KI: Warum die JPKCom DB absichtlich nach KI aussieht
- BGH-Urteil VI ZR 144/23: Wenn dein Shop Daten an Drittanbieter schickt
- Anthropic und Bun: Die Runtime, die in deiner Claude-Code-Binary wohnt
- piplet: Wenn Programm und Daten in derselben Datei wohnen
- Sveltia CMS für 11ty: die Redaktionsoberfläche, die dem Generator fehlt
- Raus aus WordPress, rein ins Repository: @11ty/import in der Praxis
- Warum 11ty: sechs Jahre statisch — und warum ich auch als Build Awesome dabeibleibe
- Der 15. September 2026: Cloudflare stellt die Crawler-Defaults um
- HTML-Landmarks in der Praxis: eine Struktur für Screenreader, Suche und KI
- CSS @layer in der Praxis: Kaskadenebenen statt Spezifitätskrieg
- DESIGN.md: Das Design-System als Datei, die auch die KI liest
- Aufbewahrungsfristen: Wie lange du Bewerbungs- und Kontaktdaten wirklich speichern darfst
- Header-Größen: Wie groß darf der Kopf einer Website sein?
- Autorenseiten ohne externe Signale: ab wann sie sich lohnen
- Die SEO- und GEO-Reihe: von den Grundlagen bis zur KI-Sichtbarkeit
- Sicheres Arbeiten mit Node.js und npm: mein Setup gegen Supply-Chain-Angriffe
- Making-of: Eigene WordPress-Plugins per GitHub Actions ausliefern und auto-updaten
- Claude Code richtig konfigurieren: vom Default zum Engineering-Partner
- Wer prüft den Prüfer? Adversarische Faktentreue für KI-Texte
- Claude Code im Container: Podman, Docker und geteilte Setups
- Making-of: Mein SEO- und GEO-Tool
- Die Quarkdown-Reihe: Markdown mit Superkräften, in elf Teilen
- Content Signals & C2PA: Steuerung der KI-Nutzung
- Quarkdown: Tipps & Tricks aus der Praxis
- Inside Quarkdown: Die Kompilier-Pipeline in sechs Stufen
- Core Web Vitals & Performance
- Quarkdown & KI: Das Agent-Skill und warum Markdown die Brücke ist
- GEO messen — und der Ausblick auf Agenten
- Quarkdown in der Praxis: CLI, PDF-Export & Deployment
- Quarkdown: Präsentationen aus Markdown — Folien, Fragmente, Speaker-Notes
- Quarkdown für Wissenschaft: Formeln, Bibliografie, Cross-References
- Quarkdown: Aus Daten werden Tabellen und Diagramme
- Quarkdown: Inhalt anordnen — Stacks, Container, Boxen & Grids
- Multimodal & Search Everywhere
- Quarkdown: Eine Quelle, vier Dokumente — Typen, Themes & Seiten-Setup
- Quarkdown: Markdown, das rechnet — Funktionen, Variablen, Skripting
- Quarkdown: Wenn Markdown Textsatz lernt
- E-E-A-T & Marken-Autorität
- Structured Data & Technical GEO
- Linkstrategie: intern und extern
- Multi-Turn & Query Fan-Out
- Schreiben für KI: der GEO-Writing-Playbook
- Googles AI-Optimization-Guide eingeordnet
- On-Page & Content: Was Seiten ranken lässt
- GEO: Sichtbarkeit in KI-Antworten
- Technical SEO: Das Fundament
- SEO 2026: Was wirklich zählt