# Kirby (CMS)

Kirby ist ein proprietäres Flat-File-Content-Management-System, das von der Content Folder GmbH & Co. KG entwickelt und vertrieben wird. Das datenbanklose CMS ist für die Erstellung kleiner Konferenz-Websites, statischer Unternehmens-Homepages, Blogs, Web-Visitenkarten und für One-Pager als Landingpage geeignet.

## Entwicklung

Das System wurde im Jahr 2009 von dem Deutschen Bastian Allgeier als eines der ersten Flat-File-CMS veröffentlicht. Es wird bis heute als proprietäres System kontinuierlich weiterentwickelt. Laut c’t hat Kirby „einen kleinen Boom unter den Flat-File-Content-Management-Systemen ausgelöst und deren Beliebtheit bei Entwicklern und Agenturen deutlich gesteigert“. Kirby verfügt über eine aktive Community.

### Versionen

Die nachfolgende Übersicht nennt nur wichtige Versionen:
| Version | Unterversion | Veröffentlichung | Anmerkungen |
| 1.x | Ältere Version; nicht mehr unterstützt: 1.0.1 | 9. Januar 2012 | |
| 2.x | Ältere Version; nicht mehr unterstützt: 2.5.10 | 16. März 2018 | Mit Erscheinen der Version 2.0.0 (2014) ist Kirby vollständig responsiv und für die Version November 2015 wurde die Code-Basis komplett neu geschrieben. |
| 3.x | Ältere Version; noch unterstützt: 3.0.0 | 5. Februar 2019 | |
| 3.x | Ältere Version; noch unterstützt: 3.1.0 | 19. März 2019 | „Chamaeleo“ |
| 3.x | Ältere Version; noch unterstützt: 3.2.0 | 25. Juni 2019 | „Archaius“ |
| 3.x | Ältere Version; noch unterstützt: 3.3.0 | 5. November 2019 | „Trioceros“ |
| 3.x | Ältere Version; noch unterstützt: 3.4.0 | 7. Juli 2020 | „Furcifer“ |
| 3.x | Ältere Version; noch unterstützt: 3.5.0 | 15. Dezember 2020 | „Calumma“ |
| 3.x | Ältere Version; noch unterstützt: 3.6.0 | 16. November 2021 | „Jungle Calumma“ |
| 3.x | Ältere Version; noch unterstützt: 3.7.0 | 27. Juni 2022 | „Kinyongia“ |
| 3.x | Ältere Version; noch unterstützt: 3.8.0 | 6. Oktober 2022 | „Rhampholeon“ |
| 3.x | Ältere Version; noch unterstützt: 3.9.0 | 17. Januar 2023 | „Brookesia“ |
| 3.x | Ältere Version; noch unterstützt: 3.10.0 | 19. Dezember 2023 | |
| 4.x | Ältere Version; noch unterstützt: 4.0.0 | 28. November 2023 | |
| 4.x | Ältere Version; noch unterstützt: 4.1.0 | 30. Januar 2024 | |
| 4.x | Ältere Version; noch unterstützt: 4.2.0 | 10. April 2024 | |
| 4.x | Ältere Version; noch unterstützt: 4.3.0 | 13. Juni 2024 | |
| 4.x | Ältere Version; noch unterstützt: 4.4.0 | 12. September 2024 | |
| 4.x | Aktuelle Version: 4.5.0 | 28. November 2024 | |
| 5.x | Vorabversion: 5.0.0 | 18. Juni 2024 | |
| Legende:Ältere Version; nicht mehr unterstütztÄltere Version; noch unterstütztAktuelle VersionAktuelle VorabversionZukünftige Version ||||
Um die Erstellung des Major-Releases Kirby 3 zu finanzieren, wurden verschiedene Pakete zur Unterstützung verkauft.
Der Kirby-Quellcode kann vollständig bei GitHub eingesehen werden. Vor der Veröffentlichung eines mit Kirby erstellten Webprojekts muss eine Lizenz erworben werden.

### Gestaltungselemente

Mit im Backend installierbaren Erweiterungen und vielen Plug-ins von Drittanbietern kann der Anwender den Funktionsumfang von Kirby erweitern oder dessen Verhalten ändern. Mit der Zusatz-Erweiterung Kirby Panel, einer Admin-Oberfläche wie bei einem datenbankbasierten CMS, lassen sich alle Inhalte über eine Weboberfläche bearbeiten. Verschiedene Themes dienen der Seitengestaltung. Kirby 3 ist mit einem neuen Control Panel zur Erstellung benutzerdefinierter Oberflächen ausgestattet, das auf Vue.js aufsetzt.

## Funktion und Architektur

Kirby ist ein Flat-File-Content-Management-System. Dieser Typ eines Content-Management-Systems benötigt kein Datenbankmanagementsystem, sondern speichert Daten in Dateien.

### Installation und Frontend

Um Kirby zu installieren, müssen Anwender die Dateien des Starterkits und ihre HTML/PHP-, Multimedia- und Textdateien auf ihren PHP-Server hochladen. Da das Flat-File-CMS auf ein Datenbanksystem verzichtet, weder konfiguriert noch angepasst werden muss, können die statisch generierten Seiten anschließend direkt vom Webserver ausgespielt werden. Kirby benötigt PHP 5.4+.

### Verwaltung der Inhalte, Rechte, Gestaltung und Datenbasis

Kirby ist mit YAML-Dateien konfigurierbar, benötigt keine separate Template-Engine wie Twig, und arbeitet mit reinem PHP und HTML. Die Seitenstruktur wird durch Ordner vorgegeben, in denen Textdateien abgelegt werden. Die Textauszeichnung und Linkerstellung erfolgt über Dashboard-Buttons. Darüber hinaus können Texte mit einer eigenen Markdown-Erweiterung namens Kirby-Text formatiert werden. Ein visueller Editor ist über ein entsprechendes Plugin implementierbar. Kirby bietet Entwicklern eine Programmierschnittstelle (API), die ähnlich wie ProcessWire, von jQuery inspiriert ist. Wiederholt verwendete Elemente wie Header, Menü oder Footer werden als kurze Quellcode-Abschnitte eingebunden. Die Benennung der Ordner strukturiert zugleich die Website. Wird nachträglich eine komplexere Websitestruktur benötigt, kann Kirby an eine MySQL-Datenbank angeschlossen werden.