Darum habe ich PureWiki entwickelt

Darum habe ich PureWiki entwickelt

Wiki-Systeme spielen eine große Rolle im Internet. Sie dienen als Wissensdatenbank für die verschiedensten Dinge. Von firmengetriebenen Wikis zu ihren Produkten bis hin zum Community-gepflegten Allgemeinwissen ist alles mit dabei. Jeder von uns kennt die große offene Wissensdatenbank Wikipedia, die wir alle bestimmt in irgend einer Weise genutzt haben. Doch wie kommen die Informationen in das System und wie werden sie bereitgestellt? Diese Frage klären wir als erstes. 

Das Herz eines Wikis

Damit wir die Informationen über unseren Web-Browser abrufen können, muss diese als Website irgendwo verfügbar sein. Bei Tausenden von Seiten wäre es aber sehr mühsam, jede Seite in HTML bzw. Code-Form zu erstellen. Hier kommen die Wiki-Systeme (oder auch Wiki-Engines) ins Spiel. Sie sind die treibende Software hinter Webseiten wie Wikipedia und ermöglichen das Anlegen, Bearbeiten, Löschen und Veröffentlichen von Einträgen und Informationen. Über eine vereinfachte Syntax oder grafische Texteditoren (WYSIWYG) kann jeder ganz einfach einen Beitrag verfassen, und das auch ohne jegliche Programmierkenntnisse.

Das Wiki-System generiert dann ganz automatisch ansprechende Websites, die über den Browser aufgerufen werden können. Diese Systeme sind speziell für das Bereitstellen von Tausenden von Seiten voller Wissen ausgelegt und weisen daher einige Unterschiede zu gängigen CMS wie Wordpress oder Typo3 auf.

Gängige Wiki-Systeme

MediaWiki ist eines der bekanntesten Open-Source Wiki-Systeme auf dem Markt und die Engine von Wikipedia. Auch DokuWiki ist sehr bekannt und wird in vielen großen Projekten verwendet. Wer eher mit Datenbanken arbeiten möchte, macht mit Wiki.js auf jeden Fall auch nichts falsch.
Neben bekannten Open-Source Lösungen gibt es auch proprietäre Wiki-Software wie Confluence oder Notion, die sich aber eher an Firmen als an Privat-Anwender richtet.

Warum also ein eigenes Wiki-System entwickeln?

Der Ursprung von PureWiki

Obwohl es so viele gute Systeme gibt, hat mir immer ein System gefehlt, welches: Einfach in der Installation ist, für jeden Nicht-Programmierer nutzbar ist, geringen Code-Overhead und eine verständliche Code-Basis hat. 

Ich habe in der Vergangenheit beruflich und auch privat sehr viel mit bekannten Wiki-Systemen gearbeitet. In Dokuwiki habe ich neben dem Erstellen von Beiträgen auch viel Zeit in das Programmieren eigener Themes und Plugins gesteckt, wodurch ich etwas tiefer in die Programmierung von Wiki-Systemen eingestiegen bin. Auch das CMS Automad ist bei mir privat seit Jahren in Benutzung und hat mich in vielen Bereichen sehr inspiriert.

Vor einigen Jahren hat mich das Thema so interessiert, dass ich mir vorgenommen habe, ein eigenes System zu erstellen. Der Fokus lag dabei in der Weiterbildung im Bereich der Web-Entwicklung und in der kompletten Freiheit bei der Umsetzung. Mangels Zeit aufgrund von Arbeit und Studium blieb es erstmal nur bei der Idee, bis ich Mitte 2025 mit der Umsetzung begonnen habe.

Folgendes war mir von vornherein wichtig:

Keine Datenbank

Eine Datenbank war ein No-Go für mich. Ich habe mich an Flat-File Wiki-Systeme gewöhnt und liebe die Vorteile, die es mit sich bringt. Wiki-Seiten liegen in Text-Dateien und können notfalls händisch bearbeitet werden. Die Sicherung ist sehr einfach, genau wie das Verschieben des Wikis auf andere Server.

Keine Build-Tools, nur PHP, JS, HTML und CSS

Mein Fokus lag auf hoher Geschwindigkeit, minimaler Code-Größe und gutem Code-Verständnis. Daher habe ich bewusst auf Paketmanager wie Composer und npm verzichtet. Mein Wiki sollte ohne Installation lauffähig sein und möglichst ohne externe Abhängigkeiten auskommen.

Grafischer Editor

Jeder sollte mit einem Wiki-System arbeiten können. Auch wenn es für Dokuwiki und co. zahlreiche Plugins für grafische Editoren gibt, erfolgt die Dokumentation meistens in einer eigenen Syntax oder Markdown. Ich habe mich von Anfang an auf einen grafischen Editor festgelegt, welcher auch Markdown unterstützt.

Open Source und Kostenlos

Wir alle benutzen Open-Source Software in irgend einer Form. Die meisten Projekte werden kostenlos von Personen bereitgestellt, die Spaß an der Programmierung haben und Ihre Fähigkeiten mit anderen teilen wollen. Mit dem Bereitstellen des Wikis auf GitHub möchte ich etwas zur Open-Source Community beitragen. Wer nehmen kann, sollte auch geben können. Umso mehr hoffe ich mit dem Projekt eine wachsende Community aufzubauen, um es stetig zu verbessern.

Die Umsetzung

Ich habe 2025 begonnen, mein System erstmal als privates Projekt umzusetzen. Vor der ersten Zeile Code habe ich meine Gedanken zusammengefasst und angefangen, ein Konzept zu schreiben. Anfangs habe ich das Projekt PicoWiki genannt (aufgrund der kleinen Code-Basis), aber habe es dann wegen einem Projekt mit ähnlichem Namen in PureWiki umbenannt. Ich habe mit der Programmierung des Routings begonnen und das Konzept Stück für Stück umgesetzt, angepasst, wieder umgeschmissen,... Jedes neue Feature hat dafür gesorgt, dass sich die Projektstruktur verändert hat. Ganz ohne externe Abhängigkeiten geht es dann doch nicht, also habe ich angefangen, nur die nötigsten Bibliotheken wie Editor.js und Parsedown mit einzubinden. Dies erfolgt aber ohne Build-Tools und sorgt weiterhin für einen sehr kompakten Code, da viele nötige Abhängigkeiten über CDNs eingebunden wurden.

Anfang 2026 war ich dann mit der grundlegenden Funktionalität und Stabilität so zufrieden, dass ich mich entschieden habe, das Projekt auf GitHub zu pushen und das Repository öffentlich zu machen. Parallel dazu habe ich eine Landing-Page auf PureWiki.org erstellt, welche das Projekt beschreibt und einen Platz für die Dokumentation bietet. Hierfür habe ich natürlich PureWiki genutzt. 

Neben der Website wollte ich eine Live-Demo anbieten. Dafür habe ich auf einen meiner Server eine Docker-Umgebung aufgesetzt, die das Testen einer komplett neu aufgesetzten PureWiki-Instanz ermöglicht. Auch wenn mich das ganze eine Woche Arbeit gekostet hat, bin ich sehr happy mit der Umsetzung.
Die Demo findet man unter demo.purewiki.org

Ich habe mich entschieden, eine eigene GitHub Organisation für das Projekt anzulegen. So kann ich neue Themes und Extensions gesammelt ablegen und habe eine saubere Trennung zu meinem privaten GitHub Space. Zudem erhoffe ich mir dadurch eine bessere Grundlage für eine entstehende Community zu schaffen. 

Abschließende Betrachtung

Von der Idee bis hin zum ersten Release auf GitHub ist einige Zeit vergangen, und ich bin immer noch extrem motiviert an diesem Projekt weiterzuarbeiten und immer mehr Features einzubauen. Neben der Programmierung von PHP, JS, CSS und HTML habe ich auch sehr viel andere Dinge lernen können. Darunter das Arbeiten mit GitHub Actions, das Verwenden von Discussions, das Beheben von Sicherheitslücken und grundlegend auch, wie man ein Open-Source-Projekt richtig auf GitHub veröffentlich.

Warum habe ich PureWiki also entwickelt? Einfach weil ich Lust darauf hatte und ein Herz für Open-Source, Web-Entwicklung und Kreativität habe. Ich werde weiterhin einiges an privater Zeit in das Projekt stecken und hoffe, dass ich immer mehr Leute für die Nutzung, die Zusammenarbeit und den Support begeistern kann.

Hier geht es zum Projekt auf GitHub: 
https://github.com/PureWiki/PureWiki 

Offizielle Website:
https://purewiki.org

Demo:
https://demo.purewiki.org

Github-Organisation:
https://github.com/PureWiki