
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Oder direkt schreiben: mail@ole-hartwig.eu