PullMD Teil 4: Vom Tool für mich zum OSS-Projekt – Einfach erklärt
Am 25. April war es so weit. Das kleine Werkzeug, das ich mir Wochen vorher selbst gebaut hatte, sollte öffentlich werden. Nicht weil jemand gedrängt hätte — sondern weil es sich einfach reif anfühlte.
Vorher waren aber noch zwei Dinge zu klären, die seit Anfang März im Hinterkopf herumlagen: ein neuer Name und eine Lizenz.
Der alte Name passte nicht mehr (Grund 1)
Das Tool hatte einen internen Codenamen. Ein Wortspiel, das auf Reddit anspielte — naheliegend damals, weil es am Anfang ausschließlich Reddit-Links verarbeitet hatte. Den Vorschlag hatte mir Claude im allerersten Konzept-Chat gemacht. Ich hatte ihn übernommen, weil ich zu dem Zeitpunkt überhaupt nicht über Branding nachgedacht habe.
Inzwischen war das Ding etwas anderes. Drei verschiedene Wege, eine beliebige Webseite in sauberen Text zu verwandeln. Eine Schnittstelle, über die der KI-Assistent das Tool direkt mitbenutzen kann. Ein kleines Bündel, das man als „Skill“ in den Chat lädt. Eine Mini-App fürs Handy. Reddit ist nur noch einer von vielen Wegen — jeder davon funktioniert für jede URL.
Ein Name, der nach „Reddit-spezifisch“ klingt, obwohl das Tool längst universell ist, weckt sofort eine falsche Erwartung. Und das ist weniger ein Marketing-Problem als eine Support-Frage, die noch keiner gestellt hat.
Der alte Name war juristisch grenzwertig (Grund 2)
Da war noch etwas anderes — und das war eigentlich der wichtigere Grund. Wenige Tage nach dem ersten Konzept-Chat war mir klargeworden, dass der Codename phonetisch ein bisschen wie eine bekannte Marke aus einer ganz anderen Branche klang. Die Firma dahinter ist dafür bekannt, auch gegen kleine Projekte vorzugehen, wenn deren Name irgendwo zu ähnlich klingt. Das ist dokumentierte Praxis, keine Spekulation.
Die Wahrscheinlichkeit eines Anwaltsbriefes war nicht riesig. Aber „klein“ ist nicht „null“. Und wer schon mal Post von einer Anwaltskanzlei bekommen hat weiß: selbst wenn man rechtlich im Recht ist, kostet das Wochen.
Schon am 8. März — also Wochen vor dem öffentlichen Release — hatte ich das Verzeichnis auf dem Server, auf dem das Tool tatsächlich läuft, unter dem neuen Namen angelegt. Damit war für mich faktisch schon entschieden: der Codename bleibt intern, draußen kommt was anderes. Nur im Quellcode selbst stand der alte Name noch — weil es bis dahin egal war. Ein Nutzer, ein Server, niemand sonst schaut da rein.
Vor dem Schritt nach draußen wurde aus „intern egal“ jetzt „muss aufgeräumt werden“. Die Wahl war einfach: ein halber Nachmittag gründliches Aufräumen, oder das Risiko eines Briefes von einer Markenrecht-Kanzlei. Der halbe Nachmittag schien sinnvoller.
Der neue Name: beschreibend, langweilig, gut
Der neue Name lautet PullMD. „Pull“ wie ziehen — der Service zieht Inhalte von Webseiten herunter. „MD“ wie Markdown — das einfache Textformat, in dem er die Inhalte zurückliefert. Das ist alles.
Kein Wortspiel. Keine Anspielung. Keine phonetische Nähe zu irgendeiner Marke. Jemand, der den Namen liest, weiß sofort, was er bekommt.
Manchmal ist der langweilige Name der beste — man liest ihn und weiß sofort, was man bekommt.
Die Lizenz — was ist das eigentlich?
Wenn man Code öffentlich auf GitHub stellt, muss man festlegen: was dürfen andere damit machen?
Eine Lizenz ist wie ein Aushang neben einer Pinnwand: „Du darfst dir das hier nehmen — aber unter diesen Bedingungen.“ Ohne so einen Aushang darf rechtlich gesehen erstmal niemand etwas damit anfangen.
Es gibt viele solcher Lizenzen. Die zwei Enden des Spektrums:
MIT-Lizenz (benannt nach der Hochschule, an der sie entstanden ist) — sehr freizügig. Nimm den Code, mach was du willst, du musst nichts zurückgeben. Ideal für kleine Helferlein, die möglichst weit verbreitet werden sollen.
AGPL (Affero General Public License) — strenger, auf eine ganz bestimmte Weise. Wenn jemand das Tool nimmt, Verbesserungen einbaut und das Ganze als Online-Dienst betreibt, muss er diese Verbesserungen ebenfalls offen veröffentlichen.
Für eine kleine Bibliothek oder ein Kommandozeilen-Werkzeug wäre MIT die natürliche Wahl. Für PullMD ist die Lage anders: es ist eben kein passiv genutztes Paket, sondern ein laufender Dienst.
Wenn jemand das Tool nimmt, im Hintergrund verbessert und als eigenen Dienst anbietet, erfahre ich nie, was die eigentlichen Schwachstellen meines Codes sind. AGPL sorgt dafür, dass das nicht passiert — Verbesserungen müssen zurückfließen.
Das ist keine ideologische Aussage über freie Software. Es ist eine ganz pragmatische Überlegung: wer hat eigentlich einen Anreiz, Fehler zu melden, wenn er sie schon selbst behoben hat?
Mehr Nuancen zu den verschiedenen Lizenzen — ohne dass man dafür einen Anwalt braucht — gibt’s auf choosealicense.com.
Damit auch andere das Tool bei sich betreiben können
Bis zu diesem Punkt lief das Tool nur bei mir, mit meinen Server-Adressen fest im Code verdrahtet. Wer es bei sich installieren wollte, hätte überall meine Adressen gesehen.
Das musste sich ändern. Eine einzige einstellbare Variable — sozusagen die „eigene Adresse“ — sorgt jetzt dafür, dass das Tool auf jeder beliebigen Domain läuft, ohne dass man im Code herumstochern muss. Wer das Tool bei sich aufsetzt, setzt diese eine Variable, und der Rest fügt sich von allein zusammen.
Die Anleitung in der README wurde komplett für die Außenwelt neu geschrieben. Kein internes Kauderwelsch mehr. Keine Notizen, die nur für mich Sinn ergaben. Jemand Fremdes soll das lesen und verstehen können.
Der Moment des Veröffentlichens
Ein Befehl, eine Sekunde, und das Repo war öffentlich. Naja — fast. Zwischen „lokal fertig“ und „wirklich draußen“ lagen tatsächlich noch zwei Tage Feinschliff. Ein kleiner Fehler musste erst auf meinem Server live laufen, bevor das Ganze wirklich öffentlich werden sollte.
Am 27. April morgens lief der eigentliche Push dann durch. In den Tagen danach kamen noch ein paar kleine Nachbesserungen — die Art von Sachen, die einem erst auffallen, wenn man das erste Mal mit echtem Abstand auf das eigene Werk schaut. Ein Footer hier, ein Layout-Detail da.
Das Tool liegt jetzt offen auf GitHub, unter github.com/AeternaLabsHQ/pullmd. Jeder darf reinschauen.
Was am Ende steht
Ein laufender Dienst auf eigener Domain, den ich jeden Tag benutze. Für Reddit-Posts, für Artikel, für Dokumentationsseiten — für alles, was ich als sauberen Text in einen Chat-Kontext bringen möchte.
Seit dem 25. April läuft im Hintergrund auch eine kleine Statistik-Datenbank mit. Sie sammelt, welcher Weg für welche Webseite am besten funktioniert — damit der nächste Fehler nicht wieder wochenlang unbemerkt bleibt.
Was als Frust über eine unhandliche Kopier-Aktion begann, ist acht Wochen später ein kleines Stück Software geworden, das ich täglich nutze. Mit oder ohne Open Source — das war den Aufwand wert.
Teil 4 von 9 der PullMD Serie.
← PullMD Teil 3: Mehr als Reddit, mehr als Readability | PullMD Teil 5: Reddit-Tag und die ersten Issues →