
Strom, Handy, zwei Versicherungen, ein Streaming-Dienst, das Software-Abo fürs Büro. Verträge sammeln sich an und liegen an verschiedenen Orten. Manche als PDF im Mail-Postfach, manche als Scan in irgendeinem Ordner, manche nur als Papier in der Schublade oder abgelegt im Ordner im Regal. Das eigentliche Problem ist dabei nicht ihre Zahl, sondern die Kündigungsfrist, an die man nie denkt. Meistens fällt einem ein Vertrag genau dann wieder ein, wenn er sich schon um ein weiteres Jahr verlängert hat.
Also habe ich mir eine App gebaut, die mir das abnimmt. Sie liest die wichtigen Daten selbst aus dem PDF und denkt an die Fristen, damit ich es nicht muss. Sie heißt ContractManager, auf Deutsch schlicht Verträge, und läuft in meiner Nextcloud. Nextcloud ist eine Alternative zu Microsoft und Google, nur eben made in Germany. Zufällig sogar aus meiner Nähe, nämlich aus Stuttgart. Nachdem ich mit meiner ersten App WorkTime gemerkt hatte, dass ich mit KI brauchbare Software bauen kann, war das hier der nächste Schritt.
Das Abtippen war das eigentliche Problem
Eine Liste mit Verträgen zu führen klingt simpel, und das ist es auch. Das Lästige daran ist nicht die Liste selbst, sondern das Abtippen. Jeder Vertrag ist ein PDF, und für jeden müsste ich Vertragspartner, Laufzeit, Kosten und Kündigungsfrist heraussuchen und von Hand in die Liste eintragen. Genau an dieser Stelle setzt die App an.
In ContractManager wähle ich ein Vertrags-PDF aus meiner Nextcloud aus und drücke auf einen Knopf. Dann liest eine KI das Dokument und füllt die Felder selbst: Name, Vertragspartner, Datum, Kosten, Vertragstyp. Ich schaue drüber und korrigiere, wo es nötig ist. Aber die stumpfe Sucharbeit übernimmt die App.
Ehrlich gesagt habe ich dieses Feature vor allem für mich selbst gebaut, weil es mir wichtig ist, und ich nutze es auch wirklich. Ob die meisten anderen überhaupt wissen, dass es das gibt, bin ich mir nicht sicher. Denn man muss dafür selbst einen Zugang zu einem KI-Modell hinterlegen, einen API-Key, und das ist in Nextcloud nicht von Haus aus eingebaut.
Für mich ist das KI an einer Stelle, an der sie tatsächlich etwas abnimmt und keine Schlagworte produziert, sondern eine spürbare Erleichterung im Alltag bringt.
Eine Sache war mir dabei wichtig. Ein Vertrag ist ein privates Dokument, das nicht einfach irgendwohin wandern soll. Welche KI die Dokumente liest, entscheide ich deshalb selbst, und damit auch, wohin die Daten überhaupt gehen.
Wer einen eigenen Server mit einer lokal laufenden KI betreibt, kann diesen in der App hinterlegen. Die Dokumente bleiben dann auf dem eigenen Server. Und wer einen der großen KI-Dienste nutzt, ist in der Regel ebenfalls abgesichert. Die meisten Anbieter sichern zu, dass die übermittelten Daten nicht zum Training ihrer Modelle verwendet werden. So oder so bleibt die Kontrolle bei mir. Das passt zu dem, woran mir bei all meinen Tools etwas liegt: zu wissen, wo meine Daten liegen.
Die App soll an die Frist denken, nicht ich
Der eigentliche Sinn einer Vertrags-App ist nicht die schöne Liste, sondern die Frist. Ich will rechtzeitig wissen, wann ich kündigen muss, und nicht erst dann, wenn es längst zu spät ist.
ContractManager erinnert mich darum von selbst, per E-Mail und über den Chat in Nextcloud. Bei Verträgen, die sich automatisch verlängern, rechnet die App die nächste Kündigungsfrist aus. Wenn ich tatsächlich kündige, trage ich nur das Datum ein, den Rest erledigt die App von selbst. Sie setzt den Vertrag auf gekündigt und beendet ihn zum Stichtag automatisch.
Dass ich die App selbst benutze, hat sich an einer Stelle besonders gezeigt. Ich pflege meine privaten Verträge damit, Strom, Gas, Wasser. Bei einem davon stimmte das berechnete Enddatum nicht.
Die Ursache war kurios. Die App rechnete sich vom Startdatum Monat für Monat nach vorne, und sie tat das nur hundertmal. Für einen Vertrag, der monatlich läuft und älter als rund acht Jahre ist, reichten hundert Schritte nicht aus. So einen Fehler findet man nicht am Reißbrett, sondern erst dann, wenn man die eigene Software wirklich benutzt. Das ist die Art Lektion, die mich daran erinnert, dass ich kein gelernter Entwickler bin und solche Dinge im Gebrauch lerne.
Eine Mail, drei Funktionen
ContractManager ist offen verfügbar. Jeder kann sie sich in seine Nextcloud holen, und der Quellcode liegt frei einsehbar auf GitHub. Das heißt auch, dass mir Leute schreiben, die ich nicht kenne. Bei meiner ersten App hat mich das noch überrascht. Hier habe ich vor allem gelernt, wie stark eine einzelne Rückmeldung eine App verändern kann.
Ein Nutzer schickte mir eine E-Mail mit fünf Ideen, und aus dreien davon wurden später konkrete Funktionen: frei benennbare Zusatzfelder, eine Auswahl der Zahlweise und eine Suche.
Ein anderer begleitet die App seit Monaten. Er hat gemeldet, dass das Vertragsformular auf seinem großen Bildschirm zu klein war und die Knöpfe aus dem sichtbaren Bereich rutschten. Er hat sogar seine Bildschirmauflösung dazugeschrieben, damit ich den Fehler nachstellen konnte. Ein anderes Mal fragte er nach, wie die Erinnerungen genau funktionieren. Ich habe es ihm erklärt, und seine Antwort war nur: Super erklärt. Das ist der eigentliche Lohn, wenn man so etwas offen teilt.
Ich setze nicht jeden Wunsch um. Als jemand unbefristete Verträge ohne festes Enddatum wollte, habe ich das zunächst zurückgestellt. Ohne Enddatum gibt es keine Frist, und ohne Frist nichts, woran die App erinnern könnte. Später habe ich es dann doch gelöst, über einen eigenen Vertragstyp. Aber ich finde es ehrlicher zu sagen, warum etwas gerade nicht geht, als alles zu versprechen.
Wo sie heute steht
Heute läuft ContractManager bei mir privat und in der Firma, und sie ist öffentlich im Nextcloud App Store und auf GitHub zu finden. Vor Kurzem ist sie bei Version 1.0 angekommen, und das stand für mich für zwei Dinge: Sie ist im echten Einsatz angekommen, und sie ist technisch auf dem aktuellen Stand. Wie dieser Umbau im Hintergrund ablief, ist eine eigene Geschichte.
Fertig ist sie damit nicht. Die Einstellungen sind mir an manchen Stellen noch zu unübersichtlich, und ein paar Wünsche aus der Community liegen noch auf meinem Zettel. Aber genau das mag ich an dieser Art zu arbeiten. Wenn mich etwas stört, kann ich es ändern.
Wer Nextcloud nutzt und denselben Überblick über seine Verträge sucht, kann sie sich ansehen. Über Rückmeldungen freue ich mich, denn die nächste Funktion entsteht vielleicht aus einer davon.