Kai Ole Hartwig
Reihe identischer matt-schwarzer Modul-Würfel mit gebürsteten Aluminium-Schildern auf Eichen-Werkbank, weiches Tageslicht von links.
01 — Open Source

Open Source — die Bausteine, auf denen meine Plattform läuft.

Open-Source-Bausteine, die ich täglich produktiv einsetze — der AI- und Content-Intelligence-Stack für TYPO3, Infrastruktur-Extensions darunter, Sylius-Bundles für Agentic Commerce, eine Integration für spec-kit, dazu Werkzeuge aus dem eigenen Betrieb. Composer-/Modul-installierbar, DDD-strukturiert, mit Tests.

02 — AI & Content Intelligence

Warum ich Open Source baue

Ich arbeite seit über einem Jahrzehnt mit TYPO3 — und habe in der Zeit immer wieder dieselben fehlenden Bausteine gebaut. Statt sie privat zu halten, veröffentliche ich sie. Das hat drei Effekte: meine eigenen Projekte werden gegen öffentliche Standards getestet, ich bekomme Verbesserungs-Feedback aus der Community, und meine Kunden haben ein klares Vendor-Lock-out: jede Extension läuft auch ohne mich.

collab-rte

TYPO3 14.x · PHP 8.3+ · GPL-2.0-or-later · noch nicht veröffentlicht

CKEditor-5-Plugin für TYPO3-Backend, das den RTE per Yjs-CRDT live mit anderen Editoren synchronisiert. Verbindet sich mit dem Hocuspocus-Server. Early-Development.

Mehr erfahren
collab-rte

collab-presence

TYPO3 14.x · PHP 8.3+ · GPL-2.0-or-later · noch nicht veröffentlicht

Presence- und Awareness-Layer auf collab-core — Live-Cursor und Avatar-Pillen im TYPO3-Backend per SSE-Stream, deterministische Farbcodierung pro Editor. Early-Development.

Mehr erfahren
collab-presence

collab-core

TYPO3 14.x · PHP 8.3+ · GPL-2.0-or-later · noch nicht veröffentlicht

Basis-Schicht der Collab-Suite — JWT-Auth, Yjs-Document-Persistenz, Presence-Tracking und REST-API für Real-Time-Co-Editing im TYPO3-Backend. Early-Development (v0.1.x).

Mehr erfahren
collab-core

content-distribution-receiver

TYPO3 14.x · PHP 8.3+ · noch nicht veröffentlicht

Target-Seite der Distribution-Strecke — empfängt signierte Snapshots, validiert die Signatur, mapped UUIDv7 auf den lokalen ID-Space.

Mehr erfahren
content-distribution-receiver

content-distribution-source

TYPO3 14.x · PHP 8.3+ · GPL-2.0-or-later · noch nicht veröffentlicht

TYPO3-zu-TYPO3-Content-Distribution — Source-Seite. Pusht signierte DAG-Snapshots aus Workspace-Publish an n downstream-Targets, mit Ed25519-Signatur und UUIDv7-Referenzen.

Mehr erfahren
content-distribution-source

content-intelligence

TYPO3 14.0+ · PHP 8.2+

Quality-Gates und Compliance-Tracking für KI-generierte Inhalte: AI-Readiness-Score, Brand-Voice-Konsistenz, Frische-Analyse, Audit-Trail — mit Backend-Dashboard.

Doku öffnen
content-intelligence

ai-workflows

TYPO3 14.0+ · PHP 8.2+

Mehrstufige KI-Workflows als deklaratives YAML — mit Blocking/Resume, Expression-Resolution, austauschbaren Steps und pluggable Notifiers. Engine für alles, was nicht in eine einzelne Prompt passt.

Doku öffnen
ai-workflows

content-provenance

TYPO3 14.0+ · PHP 8.3+

Ed25519-Signaturen für Inhalte, kryptografisch verifizierbar via /.well-known/provenance-keys. Audit-Trail-Logging und EU-AI-Act-Vorbereitung.

Doku öffnen
content-provenance

semantic-delivery

TYPO3 14.0+ · PHP 8.2+

Multichannel-Distribution mit Schema.org-Anreicherung. Inhalte automatisch für Web, AI Agents, Voice und Social-Media-Postings transformieren — inklusive direkter Anbindung an LinkedIn, X, Bluesky.

Doku öffnen
semantic-delivery

structured-content

TYPO3 14.0+ · PHP 8.3+

AI-Context-Annotations (Audience, Tone, Channels) cascaden durch die Page-Hierarchie und werden als JSON-LD ausgespielt — das Fundament für semantisch saubere Plattformen.

Doku öffnen
structured-content

webmcp

TYPO3 13.4–14.0 · PHP 8.2+

Web Model Context Protocol Server für TYPO3 — macht Suche, Navigation und Page-Content via navigator.modelContext für KI-Agenten direkt im Browser zugänglich.

Doku öffnen
webmcp
03 — Infrastructure

Infrastruktur — die Grundlage darunter

Extensions und ein Helm-Chart, die nicht direkt mit AI zu tun haben, aber die Grundlage für alles bilden, was ich betreibe — vom Caching über Konfiguration und Secret-Resolution bis zum Betrieb auf Kubernetes.

caddy-fs-s3cache

Caddy 2.11+ · Go 1.26+ · MIT

Caddy-Dateisystem für S3 mit lokalem Disk-Cache: ein GetObject pro kalter Datei statt drei, heiße Dateien von der Platte, Revalidierung per If-None-Match. Medien aus dem Bucket ohne FUSE-Mount.

Mehr erfahren
caddy-fs-s3cache

typo3-fal-s3

TYPO3 14.3+ · PHP 8.5+ · MIT

FAL-Treiber für Amazon S3: fileadmin direkt im Bucket statt als Netzlaufwerk. Bestehende Speicher werden an Ort und Stelle umgestellt, Adressen bleiben gleich. Kein Zugangsschlüssel in TYPO3.

Mehr erfahren
typo3-fal-s3

frankenphp

TYPO3 13.4–14.x · PHP 8.3+ · MIT

TYPO3-Extension für FrankenPHP-Worker-Mode-Integration. 103 Early Hints aus dem AssetCollector, REST-basierte Cache-Invalidierung gegen Caddy/Souin, PSR-14-Auto-Invalidierung plus Backend-Modul.

Mehr erfahren
frankenphp

cluster-file-backend

TYPO3 14.3+ · PHP 8.5+ · MIT

Clusterfähiges TYPO3-Cache-Backend ohne Shared Filesystem — Drop-in-Ersatz für FileBackend/SimpleFileBackend in Kubernetes. Metadaten zentral (DB/Redis), Payloads pod-lokal.

Mehr erfahren
cluster-file-backend

typo3-async

Mails verlassen den Request: im Request gerendert, in eine Queue gelegt und von einem Consumer verschickt, mit drei Wiederholungen und einer Failure-Queue. Per Umgebungsvariable geschaltet, damit nie eine Queue ohne Leser entsteht.

Doku öffnen
typo3-async

hocuspocus

Node 20 · TypeScript · noch nicht veröffentlicht

Standalone-Node-WebSocket-Server der Collab-Suite — @hocuspocus/server plus Yjs plus Redis Pub/Sub für Multi-Instance-Sync. Authentifiziert sich gegen collab-core. Early-Development.

Mehr erfahren
hocuspocus

secret-resolver

TYPO3 14.0+ · PHP 8.3+ · GPL-2.0-or-later

Runtime-Secret-Resolution für containerisierte TYPO3-Deployments. %secret(KEY)%-Syntax in Site-Configs, mit cascading Lookup (KEY_FILE-Env → /run/secrets/ → Env-Fallback).

Doku öffnen
secret-resolver

typo3-config

TYPO3 11–14.0 · PHP 8.2+ · GPL-2.0-or-later

Fluent Configuration API mit Context-basierten Presets (Production, Development, CLI, Testing) und cascading Secret-Resolution. TLS/mTLS-Discovery, Mailer- und Logging-Helpers.

Doku öffnen
typo3-config

keyvalue-store

TYPO3 11.5–14.0 · PHP 8.2+ · PHPRedis 6.3+

Production-grade Redis/Valkey-Backend für TYPO3 — mit Sentinel-Support, TLS/mTLS-Verschlüsselung und distributed Locking. Caching-Framework, Sessions, KV-Storage aus einer Hand.

Doku öffnen
keyvalue-store

crowdsec-bridge

TYPO3 14.3+ · PHP 8.5+ · CrowdSec 1.6+ · MIT

TYPO3-14-Backend-Modul für die CrowdSec Local API. Decisions anzeigen, IPs sperren und entsperren, Alerts inspizieren, LAPI-Heartbeat — alles ohne Container-Shell, mit Foreign-Origin-Schutz und vollständigem sys_log-Audit-Trail.

Mehr erfahren
crowdsec-bridge

typo3-indexnow

TYPO3 14 · PHP 8.5+ · MIT

IndexNow für TYPO3 14. Neue, geänderte und zeitgesteuerte Seiten in Minuten bei Bing und den KI-Suchen. Schlüssel pro Host abgeleitet, nichts von Testsystemen oder geschützten Seiten.

Mehr erfahren
typo3-indexnow

fa4t3

TYPO3 14.x · PHP 8.5+ · MIT

Fathom Analytics direkt im TYPO3-Backend — Dashboard-Modul, Page-Analytics-Widget pro Seite und optionale Frontend-Script-Injection. Fathom setzt keine Cookies, deshalb braucht das Tracking kein Cookie-Banner.

Doku öffnen
fa4t3

typo3-kubernetes-chart

Helm · Kubernetes 1.30+ · Apache-2.0

Referenz-Helm-Chart für TYPO3 auf Kubernetes mit IT-Grundschutz-Härtung: signierter Code, read-only Container, mTLS, Default-Deny-Network-Policies und Secrets ohne Values-Datei. Klein genug, um es an einem Nachmittag zu lesen.

Auf GitHub
typo3-kubernetes-chart
04 — Erweiterungen

Erweiterungen für andere Plattformen

Außerhalb des TYPO3-Stacks: eine spec-kit-Extension, die User Stories aus der spec.md als GitLab-Issues anlegt. MIT-lizenziert und ohne Service-Pitch zum Selbst-Bedienen.

spec-kit-gitlab

spec-kit · MIT

GitLab-Extension für spec-kit: User Stories aus spec.md automatisch als GitLab Issues mit Labels, Milestones und Task-Verlinkungen anlegen — via glab CLI.

Doku öffnen
spec-kit-gitlab

Werkzeuge aus dem eigenen Betrieb

Programme, die ich für den eigenen Betrieb gebaut habe: pinup hält Abhängigkeiten aktuell und ersetzt Renovate, yasrt schneidet Releases nach dem Build statt davor, s3mail liest Post, die Amazon SES in deinen Bucket legt, pod-cert-signer stellt Pods Zertifikate aus, mit dem CA-Schlüssel in AWS KMS. Die Go-Werkzeuge kommen als ein Binary ohne Laufzeit und mit signierten Releases. Dazu grundschutz-worksheets, ein Node-Skript ohne Abhängigkeiten für Grundschutz++-Prüfungen.

s3mail

Go · macOS, Linux, Windows, iOS · Apache-2.0

Mail-Client für Post, die Amazon SES in deinen S3-Bucket schreibt. Kein Server dazwischen, Postfach im Browser, iPhone-App dazu, für ein Modell erreichbar, aber ohne Senden.

Doku öffnen
s3mail

yasrt

Go · GitLab, GitHub, Forgejo · Apache-2.0

Semantic Release ohne npm-Kette: entscheidet aus Conventional Commits, dein Build läuft, erst dann kommt der Tag. GitLab, GitHub und Forgejo mit dem Job-Token allein.

Doku öffnen
yasrt

pinup

Go 1.27 · GitLab, GitHub · Apache-2.0

Dependency-Updates als ein statisches Binary: liest deine Renovate-Konfiguration, schreibt vor jeder Änderung einen Plan, der auch erklärt, was nicht passiert und warum, und öffnet Merge Requests auf GitLab und GitHub.

Doku öffnen
pinup

pod-cert-signer

Go · Kubernetes 1.37, AWS KMS · Apache-2.0

Signer für die Pod-Zertifikate von Kubernetes 1.37: Policy mit Default-Deny, Zertifikate mit einem Tag Laufzeit, der CA-Schlüssel bleibt in AWS KMS. Ersetzt Passwörter zwischen Diensten.

Doku öffnen
pod-cert-signer

grundschutz-worksheets

Node 24+ · BSI Grundschutz++ (OSCAL) · MIT

Macht aus dem maschinenlesbaren Grundschutz++-Katalog des BSI Prüf-Arbeitsblätter und OSCAL-Dokumente: Profil, Komponentendefinitionen, Prüfergebnisse, SSP und POA&M. Dazu ungeprüfte Mappings von NIS2, der NIS2-Durchführungsverordnung, DORA, C5:2026 und SOC 2 auf Grundschutz++. Für den Abgleich deines ISMS mit dem laufenden System statt mit der eigenen Doku.

Doku öffnen
grundschutz-worksheets

grundschutz-checks

Node 24+ · BSI Grundschutz++ (OSCAL) · MIT

Fünf Prüfungen, die Anforderungen aus Grundschutz++ an GitLab und TLS-Endpunkten messen: Branch-Schutz, Zwei-Faktor-Pflicht, TLS, SBOM und Abhängigkeits-Updates. Sie lesen nur und schreiben das Gesehene in eine Lauf-Datei für grundschutz-worksheets. Laufen sie jede Nacht, ergeben sie eine datierte Reihe pro Anforderung.

Doku öffnen
grundschutz-checks

grundschutz-viewer

Go · BSI Grundschutz++ (OSCAL) · MIT

Zeigt den Grundschutz++-Katalog zusammen mit dem, was deine OSCAL-Dokumente dazu sagen: Profil, Sicherheitsplan, Prüfergebnisse und POA&M. Eine HTML-Seite ohne Server, offline lesbar. Aus mehreren Läufen wird ein Verlauf: pro Anforderung, was sich wann geändert hat.

Doku öffnen
grundschutz-viewer

Agentic Commerce — die Sylius-Seite

Bundles, die einen Sylius-Shop für KI-Agenten benutzbar machen: Discovery, Agent-Authentifizierung und die agentischen Commerce-Protokolle. Ein Paket pro Protokoll, jedes einzeln einsetzbar — wer nur llms.txt braucht, bekommt keine Krypto-Abhängigkeiten mit. Alle MIT.

sylius-agent-ready

Sylius 2.0+ · PHP 8.2+ · MIT

Metapaket über die ganze Familie — Discovery, Agent-Authentifizierung und die Commerce-Protokolle in einem require. Registrierung der Bundles, Routen und Firewall bleiben Handarbeit.

Doku öffnen
sylius-agent-ready

sylius-agent-contracts

Sylius 2.0+ · PHP 8.2+ · MIT

Das Fundament: Provider-Interfaces, Registries und der kanal-bewusste Kontext. Liefert selbst keinen einzigen Endpunkt — eine Klasse, die eines der Interfaces implementiert, wird containerweit automatisch registriert.

Doku öffnen
sylius-agent-contracts

sylius-robots-txt

Sylius 2.0+ · PHP 8.2+ · MIT

Kanal-bewusste robots.txt mit namentlich genannten AI-Crawlern und Content Signals. Eine Wildcard-Gruppe liest GPTBot nicht als Aussage über sich — also bekommt jeder Token seine eigene.

Doku öffnen
sylius-robots-txt

sylius-llms-txt

Sylius 2.0+ · PHP 8.2+ · MIT

llms.txt als Landkarte, nicht als Katalog. llms-full.txt ist doppelt begrenzt, hört zwischen Einträgen auf statt mitten drin und sagt, dass es aufgehört hat.

Doku öffnen
sylius-llms-txt

sylius-markdown

Sylius 2.0+ · PHP 8.2+ · MIT

Accept: text/markdown für die Storefront. Markdown entsteht aus Entity-Daten über ein Template, nicht aus gerendertem HTML — sonst landen Navigation, Footer und Cookie-Banner im Dokument.

Doku öffnen
sylius-markdown

sylius-api-catalog

Sylius 2.0+ · PHP 8.2+ · MIT

RFC 9727: der Katalog unter /.well-known/api-catalog und die Link-Header, die ihn bewerben. Gelistet wird, was die installierten Bundles anmelden — ohne dass das Paket sie kennt.

Doku öffnen
sylius-api-catalog

sylius-agent-skills

Sylius 2.0+ · PHP 8.2+ · MIT

Der Discovery-Index unter /.well-known/agent-skills/index.json. Der SHA-256-Digest wird über das tatsächlich ausgelieferte Dokument berechnet, nicht konfiguriert — sonst veraltet er bei der ersten Textänderung.

Doku öffnen
sylius-agent-skills

sylius-a2a

Sylius 2.0+ · PHP 8.2+ · MIT

Die Agent Card unter /.well-known/agent-card.json. Die Skills kommen aus der gemeinsamen Registry — drei Kopien von Hand zu pflegen ist der Weg, auf dem sie anfangen, sich zu widersprechen.

Doku öffnen
sylius-a2a

sylius-mcp

Sylius 2.0+ · PHP 8.2+ · MIT

Shop-Tools für den MCP-Server plus die Server Card nach SEP-1649. Ein Agent lernt Transport und Tool-Fläche, bevor er sich verbindet, statt es durch Ausprobieren herauszufinden.

Doku öffnen
sylius-mcp

sylius-webmcp

Sylius 2.0+ · PHP 8.2+ · MIT

Registriert Shop-Aktionen als WebMCP-Tools im Browser des Kunden, damit ein seitengebundener Agent auf der Seite suchen kann, die der Kunde gerade ansieht. Bewusst nur lesend.

Doku öffnen
sylius-webmcp

sylius-mcp-oauth

Sylius 2.0+ · PHP 8.2+ · MIT

OAuth 2.1 mit dynamischer Client-Registrierung und verpflichtendem PKCE, dazu die RFC-8414- und RFC-9728-Metadaten. Zugriff ist delegiert, nie autonom: ein Token vertritt immer einen Administrator.

Doku öffnen
sylius-mcp-oauth

sylius-auth-md

Sylius 2.0+ · PHP 8.2+ · MIT

/auth.md, zusammengesetzt aus den installierten Authentifizierungsmethoden. Dieselben Deskriptoren speisen den agent_auth-Block der OAuth-Metadaten, damit beide nicht auseinanderdriften.

Doku öffnen
sylius-auth-md

sylius-web-bot-auth

Sylius 2.0+ · PHP 8.2+ · MIT

Das Schlüssel-Verzeichnis unter /.well-known/http-message-signatures-directory. Nur die ausgehende Hälfte des Protokolls: es erlaubt anderen, Requests dieses Shops zu prüfen.

Doku öffnen
sylius-web-bot-auth

sylius-acp

Sylius 2.0+ · PHP 8.2+ · MIT

Agentic Commerce Protocol: Discovery-Dokument und ein SKU-genauer Produktfeed. Der Checkout wird standardmäßig verschwiegen — bei altersbeschränktem Sortiment muss der Abschluss dort passieren, wo das Alter geprüft werden kann.

Doku öffnen
sylius-acp

sylius-ucp

Sylius 2.0+ · PHP 8.2+ · MIT

Das Discovery-Profil unter /.well-known/ucp. Liefert bewusst ein Superset, weil Spezifikation und Discovery-Scanner unterschiedliche Formen erwarten und beide in echten Clients vorkommen.

Doku öffnen
sylius-ucp

sylius-mpp

Sylius 2.0+ · PHP 8.2+ · MIT

Ein OpenAPI-3.1-Dokument unter /openapi.json mit x-payment-info auf bezahlbaren Operationen. Die Preise kommen aus derselben Tabelle, die x402 durchsetzt.

Doku öffnen
sylius-mpp

sylius-x402

Sylius 2.0+ · PHP 8.2+ · MIT

Beantwortet eine Datenroute mit HTTP 402 und den Zahlungsanforderungen, die ein Agent erfüllen kann. Standardmäßig aus — nie die Storefront, nie der Checkout, nie die Discovery-Dokumente.

Doku öffnen
sylius-x402

Composer-installierbar. DDD-strukturiert. deptrac-geprüft. Test-first.

Alle Extensions folgen denselben Engineering-Standards: 4-Layer-DDD-Architektur mit deptrac-Enforcement, PHPStan Level 8, PER-CS3x0, Unit- und Functional-Tests. Den Quellcode der veröffentlichten Pakete findest du auf GitHub. Issues und Mitarbeit über das jeweilige Repository.

Nächster Schritt

Eine Extension trifft deinen Use Case?

Wenn du eine der Extensions selbst einsetzen willst — kostenfrei, im eigenen TYPO3, ohne Vertrag mit mir — findest du alles in der jeweiligen Doku-Seite. Wenn du Begleitung willst (Integration, Custom-Erweiterung, Betrieb), sprich mich an.

Begleitung anfragen →

Oder direkt schreiben: mail@ole-hartwig.eu