Ein Renderer für alles
Keine einzige seitenspezifische Funktion. Derselbe Code erzeugt Startseite, Modulseite und Impressum.
✦ [ Data-First. Seit dem Jahr 2000. ]
Dieses Konzept entwickelte Boris Uhlig im Jahr 2000 und setzte es produktiv ein – damals ohne passende Begriffe dafür, heute bekannt als Headless CMS, Content Modeling und API-first Architecture. Was als Experiment begann, ist heute die Grundlage von Pleniofy.
Im Jahr 2000 – als das Web noch aus statischen HTML-Seiten und CGI-Skripten bestand – entwickelte Boris Uhlig ein System, das eine komplette Website nicht aus einzelnen Programmdateien erzeugte, sondern aus wenigen Tabellen einer Datenbank. Die Idee war radikal einfach: Trenne Struktur, Inhalt und Darstellung vollständig voneinander. Speichere alles in Daten. Nutze einen einzigen, generischen Renderer für alles. Was fehlte, waren die Begriffe. Was heute Headless CMS, Structured Content und Content Modeling heißt, existierte damals noch nicht als Konzept. Boris Uhlig löste dasselbe Problem – ohne Blaupause, ohne Framework, ohne Community-Wissen. Nur mit der Überzeugung, dass eine Website eigentlich eine Datenbank ist, die man im Browser liest.
Der hier dokumentierte Prototyp setzt dieses Prinzip mit heutigen Mitteln um. Er besteht aus sechs Kerntabellen: **node_class** – definiert die Bausteintypen (Seite, Hero, Abschnitt, Karte…) **node_class_field** – beschreibt die Felder jeder Klasse (Text, Bild, URL…) **node** – enthält die konkreten Inhaltsinstanzen in einer Baumstruktur **node_tr** – speichert alle Übersetzungen je Knoten und Sprache **route** – verknüpft URL-Pfade mit Knoten, je Sprache **locale** – verwaltet die aktiven Sprachen Ein einziger rekursiver SQL-Query lädt den gesamten Seitenbaum in einem Datenbankzugriff. Ein rekursiver Renderer übersetzt ihn in HTML – ohne eine einzige Seiten-spezifische Funktion. Derselbe Renderer erzeugt jede Seite, jeden Baustein, jede Sprache.
Keine einzige seitenspezifische Funktion. Derselbe Code erzeugt Startseite, Modulseite und Impressum.
Jeder Inhaltsbaustein hat eine Übersetzungstabelle. Neue Sprache = neue Zeilen in der DB.
Der rekursive WITH-Query traversiert den gesamten Seitenbaum in einem Datenbankzugriff.
Neue Seitentypen entstehen durch neue Klassen in der DB – ohne eine Zeile Code zu schreiben.
Der gesamte Pleniofy Server – Engine, Admin, Renderer, alle Seiten – ist eine einzige Python-Datei.
Was heute Headless CMS heißt, entwickelte Boris Uhlig im Jahr 2000. Ohne Framework. Ohne Vorbild.
Das Konzept von damals war nicht nur tragfähig, sondern seiner Zeit um mindestens 10 Jahre voraus und lässt sich mit dem heutigen Stand der Technik identisch umsetzen – an mehreren Stellen sogar mit Werkzeugen, die es im Jahr 2000 schlicht noch nicht gab: rekursive SQL-Queries mit WITH RECURSIVE, SQLite als vollwertiger Produktionsdatenbank, Python als universelle Laufzeit. Pleniofy ist der Beweis: Ein generisches, datengetriebenes Web war 2000 möglich – und ist 2026 produktionsreif.
Welcher Tarif schaltet welche Funktionen frei? Alle Kunden erhalten automatische Backups, DSGVO-konforme Datenhaltung und mobile Apps mit Offline-Funktion.
| Feature | Basic | Pro | Advanced | Enterprise |
|---|---|---|---|---|
| Anwesenheit | ||||
| Clock in/out (Stoppuhr + manuell) | ✓ | ✓ | ✓ | ✓ |
| Bearbeiten von Zeiteinträgen | ✓ | ✓ | ✓ | ✓ |
| Sollstunden / Arbeitszeitvorschriften | ✓ | ✓ | ✓ | ✓ |
| Stundenkonten / Gleitzeit | ✓ | ✓ | ✓ | ✓ |
| ArbZG-Compliance-Warnungen | ✓ | ✓ | ✓ | ✓ |
| Zuschlagsberechnung (Nacht/WE/Feiertag) | — | ✓ | ✓ | ✓ |
| Terminalanbindung (Hardware) | — | ✓ | ✓ | ✓ |
| Abwesenheiten und Urlaub | ||||
| Urlaubsanträge + Kontingente | ✓ | ✓ | ✓ | ✓ |
| Feiertage (EU + DE-Bundesländer) | ✓ | ✓ | ✓ | ✓ |
| Konfigurierbare Abwesenheitsarten | — | ✓ | ✓ | ✓ |
| Genehmigungsprozess (hierarchiebasiert) | ✓ | ✓ | ✓ | ✓ |
| Urlaubskalender org-weit | ✓ | ✓ | ✓ | ✓ |
| eAU / Krankmeldung + AU-Upload | — | ✓ | ✓ | ✓ |
| Digitale Signatur SES (eIDAS) | — | ✓ | ✓ | ✓ |
| Team | ||||
| Rollenbasierte Zugriffsrechte | ✓ | ✓ | ✓ | ✓ |
| Teamstruktur / Hierarchie | ✓ | ✓ | ✓ | ✓ |
| Team-Präsenz (Wer ist heute wo?) | ✓ | ✓ | ✓ | ✓ |
| Reisezeit-Erfassung | — | ✓ | ✓ | ✓ |
| Projekt- und Kundenzeiterfassung | ||||
| Kunden, Projekte, Leistungen | — | ✓ | ✓ | ✓ |
| Budgets für Projekte | — | ✓ | ✓ | ✓ |
| Stundensätze | — | ✓ | ✓ | ✓ |
| Budget-Warnungen / Intervallbudgets | — | — | ✓ | ✓ |
| Anbindung Rechnungstools | — | ✓ | ✓ | ✓ |
| ERP-Anbindungen | ||||
| Nativer Zeiterfassungs-Speicher | ✓ | ✓ | ✓ | ✓ |
| DATEV / LODAS-Export (Lohn) | — | ✓ | ✓ | ✓ |
| ERP-Konnektor weclapp | — | — | ✓ | ✓ |
| ERP-Konnektor Personio | — | — | ✓ | ✓ |
| ERP-Konnektor DATEV Personalwirtschaft | — | — | ✓ | ✓ |
| Sync-Log-UI im Portal | — | — | ✓ | ✓ |
| Eigener/dynamischer Konnektor | — | — | — | ✓ |
| Kommunikationsplattform-Konnektoren | ||||
| E-Mail-Benachrichtigungen (SMTP) | ✓ | ✓ | ✓ | ✓ |
| Microsoft 365 (Teams + Outlook) | — | ✓ | ✓ | ✓ |
| Google Workspace (Gmail, Chat) | — | — | Q2/2027 | Q2/2027 |
| Nextcloud (Talk, Files) | — | — | Q3/2027 | Q3/2027 |
| Open-Xchange | — | — | — | Q4/2027 |
| openDesk (Add-on) | — | — | — | Add-on |
| Kalender-Sync (Outlook/Google) | — | — | Q3/2027 | Q3/2027 |
| Custom Communication Connector | — | — | — | Add-on |
| KI-Anbindungen | ||||
| Cloud-KI (OpenAI, Azure) | — | ✓ | ✓ | ✓ |
| Selbst-gehostet (Ollama, vLLM, LM Studio) | — | — | ✓ | ✓ |
| On-Premise-KI-Modell (Setup + Wartung) | — | — | — | Add-on |
| Editor und Konfiguration | ||||
| Workflows und Formulare nutzen | ✓ | ✓ | ✓ | ✓ |
| Definitionen ansehen (read-only) | ✓ | ✓ | ✓ | ✓ |
| Abwesenheitsarten pflegen | — | ✓ | ✓ | ✓ |
| Business Contacts anpassen | — | ✓ | ✓ | ✓ |
| Workflows/Formulare bearbeiten | — | — | ✓ | ✓ |
| Workflows/Formulare neu erstellen | — | — | — | ✓ |
| Plattform und Betrieb | ||||
| Mobile Apps mit Offline-Funktion | ✓ | ✓ | ✓ | ✓ |
| Offene REST-API | ✓ | ✓ | ✓ | ✓ |
| Webhooks | — | 1×3 | 5 | ∞ |
| MCP-Server (KI-Agenten) | — | — | ✓ | ✓ |
| Automatische Backup-Retention | 7 T | 30 T | 60 T | 90 T + PITR |
| Hosting in Deutschland (Hetzner) | ✓ | ✓ | ✓ | ✓ |
| Enterprise | ||||
| Single Sign-On (SAML/OIDC) | — | — | — | ✓ |
| Erweiterte SLA (Reaktionszeit, Uptime) | — | — | — | ✓ |
| Priorisierter Support (DE-Sprechzeit) | — | — | — | ✓ |
| API-Rate-Limits dediziert erhöht | — | — | — | ✓ |
Kennzeichnung mit Quartal (z. B. Q2/2027): Feature auf der Roadmap — bis dahin über E-Mail-Fallback bedient. „Add-on" = separat buchbar.