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 by Moselwal

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, achtzehn Sylius-Bundles für Agentic Commerce, Integrationen für Dolibarr und spec-kit, dazu drei Go-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

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

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

Basis-Schicht der Moselwal-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+ · Coming soon

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

Mehr erfahren
content-distribution-receiver

content-distribution-source

TYPO3 14.x · PHP 8.3+ · GPL-2.0-or-later

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

business-agent

TYPO3 13.4–14.0 · PHP 8.3+ · Open Source

Context-aware Conversational Agent mit RAG-Pipeline für TYPO3-Content. Access-Class-Routing (Public / Partner / Internal / Admin), MCP-Tool-Integration, einbettbares Chat-Widget.

Doku öffnen
business-agent

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

Drei Extensions, die nicht direkt mit AI zu tun haben, aber die Grundlage für alles bilden, was ich betreibe — vom Caching über Konfiguration bis zur Secret-Resolution.

frankenphp

TYPO3 13.4–14.x · PHP 8.3+ · GPL-2.0-or-later

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

hocuspocus

Node 20 · TypeScript · GPL-2.0-or-later

Standalone-Node-WebSocket-Server der Moselwal-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

crowdsec-bridge

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

TYPO3 14 backend module for the CrowdSec Local API. List decisions, ban and unban IPs, inspect alerts, check the LAPI heartbeat — all without container shell, with foreign-origin protection and a complete sys_log audit trail.

Learn more
crowdsec-bridge

fa4t3

TYPO3 14.x · PHP 8.5+ · GPL-2.0-or-later

Privacy-first analytics directly in the TYPO3 backend — dashboard module, per-page analytics widget, and optional frontend script injection. No cookie banner required.

Open docs
fa4t3

secret-resolver

TYPO3 14.0+ · PHP 8.3+

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+ · MIT-Lizenz

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

fa4t3

TYPO3 14.x · PHP 8.5+ · GPL-2.0-or-later

Privacy-first Analytics direkt im TYPO3-Backend — Dashboard-Modul, Page-Analytics-Widget pro Seite und optionale Frontend-Script-Injection. Kein Cookie-Banner nötig.

Doku öffnen
fa4t3
04 — Erweiterungen

Erweiterungen für andere Plattformen

Zwei kleinere Pakete außerhalb des TYPO3-Stacks: ein Dolibarr-Modul, das ERP/CRM mit GitLab verzahnt, und eine spec-kit-Extension, die User Stories aus der spec.md als GitLab-Issues anlegt. Beide MIT-lizenziert, beide stehen ohne Service-Pitch zum Selbst-Bedienen bereit.

DoliGitlab

Dolibarr 20+ · PHP 8+ · MIT

Dolibarr-ERP/CRM-Modul mit tiefer GitLab-Integration: bidirektionale Issue/Ticket-Sync, Time Tracking, Release-Browser, Wiki-Viewer — alles benutzerbasiert zugewiesen, automatisiert per Trigger und Cron.

Doku öffnen
DoliGitlab

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 — ein Binary, keine Laufzeit

Drei Go-Programme, die ich für den eigenen Betrieb gebaut habe und die ohne Node, Docker oder Datenbank auskommen: 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. Jedes mit signierten Releases, jedes mit Dokumentation hier.

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

Agentic Commerce — die Sylius-Seite

Siebzehn 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
Klarstellung

Open Source vs. kommerzielle Erweiterung

Bis auf eine sind alle Extensions Open Source und unter freier Lizenz nutzbar. Nur business-agent-pro ist kommerziell und proprietary. Begründung: die kommerzielle Variante enthält Channel-Adapter (WhatsApp Business, Twilio-basierte Telefonie, Social-Media-APIs) mit laufenden Drittanbieter-Kosten und Verantwortung. Das war schwer als kostenfreies OSS-Produkt zu liefern, ohne die Open-Source-Variante zu verkrüppeln.

Mein Ansatz: business-agent bleibt komplett funktionsfähig, frei und produktiv einsetzbar. Wer mehr Kanäle braucht, kann die Pro-Variante dazu lizenzieren — oder sich mit meiner Hilfe selbst einen Channel-Adapter bauen.

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. Veröffentlichte Pakete findest du auf Packagist. 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