git log — 183 Tage Geschichte

Die Geburt von Taski

Von einem zaghaften ersten Commit zu einem vollständigen Ökosystem auf 6 Plattformen. Sechs Monate voller Code, schlafloser Nächte, unmöglicher Bugs und kleiner Siege.

0Commit
0Plattformen
0Tage
0Deploy
$ git log --since="2025-11-26" --oneline | wc -l
Scrollen
01 Der Funke

Initial Commit

Alles beginnt mit einem leeren Ordner und einer Idee: eine Messaging-App, die Privatsphäre an erste Stelle setzt. Der erste Commit ist nackt — ein Xcode-Skelett, ein SwiftUI-Projekt mit mehr Hoffnung als Code. "tentativo sistemazione login" lautet der zweite Commit, wenige Minuten später. Noch funktioniert nichts, aber die Reise hat begonnen.

Initial Commit

Die ersten Worte

Innerhalb von 24 Stunden funktionieren Push-Benachrichtigungen und WebSocket. Das Backend kann Nachrichten in Echtzeit senden. Die Implementierung des Profilbilds scheitert beim ersten Versuch — "App compila update profilo fallito" aber am nächsten Morgen funktioniert es. Die Nachrichten erscheinen. Zum ersten Mal sprechen zwei Geräte miteinander.

Chat funktioniert!

Die Commit-Nachricht sagt alles: "Chat funzionante, profilo funzionante" Zum ersten Mal bleiben Chats bestehen, Nachrichten kommen an, das Profil aktualisiert sich. Das Fundament steht. Ab hier wird gebaut.

Die durchwachten Nächte

Die Zeitstempel lügen nicht: Commits um 00:52, 2:13, 2:30, 4:53, 5:07. Ein Sperrfeuer nächtlicher Commits bringt die App von „funktioniert“ zu „sieht echt aus“. Tipp-Anzeige, Lesebestätigungen, Deeplinks, Badges. Um 4:53 erscheint der erste der Geister, die das Projekt heimsuchen werden: "fix chat fantasma e push" Um 5:07, erschöpft: "risolti" Ein einziges Wort. Dann Stille bis morgen.

02 Die Festung

E2EE implementiert

Fünf Tage nach dem ersten Commit ist die Ende-zu-Ende-Verschlüsselung aktiv. Jede Nachricht verschlüsselt mit Curve25519-Schlüsseln. Der Server kann nichts lesen. Es ist kein Zusatz: Es ist die DNA von Taski. Ab diesem Moment kann nicht einmal der Serverbetreiber die Nachrichten der Nutzer sehen.

"TUTTO FUNZIONANTE DA QUESTO PUNTO"

Die Commit-Nachricht in Großbuchstaben lügt nicht. Push-Benachrichtigungen mit verschlüsselter Vorschau, Antworten auf Nachrichten, verschlüsselte Nachrichten mit korrekter Uhrzeit. In nur 6 Tagen hat Taski die komplette Basis eines sicheren Messengers. "NOTIFICHE FUNZIONANTI" ruft ein Commit kurz zuvor. Die Begeisterung ist spürbar im Git-Log.

Kontakte und SMS-Verifizierung

Wieder nachts, um 1:06. Nutzer-Matching über Telefonnummer. Login per SMS. Taski hört auf, ein Experiment zu sein, und wird zu etwas, das man auf dem Handy seiner Mutter installieren könnte.

Gruppen: die Achterbahnfahrt

Am 4. Dezember halten Gruppen Einzug in den Code. Das Git-Log erzählt ein Epos in vier Akten: "Gruppi funzionanti" "Gruppi perfettamente funzionanti" "Gruppi quasi perfetti" "GRUPPI PERFETTI" Am nächsten Tag, erneut: "Logica gruppi perfetta" Fünf Commits, fünf steigende Stufen der Gewissheit. Oder vielleicht der Selbstüberzeugung.

Die Woche der „Vielleichts“

21 Commits in 4 Tagen, und der Zweifel durchzieht jede Zeile: "Per ora BENE" "Sistamazione spunte? Forse!" "chat eliminate sembra funzionare" "Abbinamento chat quasi perfetto" "sistemato forse tutto" Das ist keine Sicherheit: Das ist Hoffnung. Die Lesebestätigungen funktionieren, dann nicht mehr. Geister-Chats erscheinen und verschwinden. Die Tippfehler in den Commits verraten die Müdigkeit: „Sistamato“, „nofifiche“, „implemenzazione“. Aber der Code schreitet voran.

Das Weihnachts-Limbo

Während die Welt feiert, hören die Commits nicht auf. Transkription von Sprachnachrichten. Link-Vorschauen. Video. Am 23. Dezember: "Posizionamento messaggi quasi perfetto" Am 27.: "Forse ci siamo, chat sistamata" "Chat sembra ok" „Sembra“. „Forse“. „Quasi“. Die Worte dessen, der gelernt hat, sich nicht zu vertrauen. Am 26. Dezember, dem zweiten Weihnachtstag: "Sistemato problema freeze UI in chat" Kein Ruhetag für die App.

03 Die Reife

Sprach- und Videoanrufe

Integration des Agora SDK für Echtzeit-Anrufe. Ringback-Ton, Verwaltung verpasster Anrufe, automatischer Lautsprecher bei Videoanrufen. Auch die Anrufe sind E2EE-verschlüsselt mit Curve25519-Schlüsseln. "Nascondi tasto videochiamata (da riabilitare)" erzählt vom Kampf zwischen Ambition und Stabilität. Am 5. Januar: "Chiamate quasi perfette" Wieder dieses „quasi“. Und dann der wahre Feind: "Fix call zombie: terminate active call when app goes to background or is killed" Die Zombie-Anrufe — solche, die aktiv bleiben, wenn die App stirbt — werden den Code wochenlang verfolgen.

Der Watchdog

Der gefürchtetste Fehlercode unter iOS-Entwicklern: 0x8BADF00D („ate bad food“). Er bedeutet, dass das System die App getötet hat, weil der Haupt-Thread blockiert war. "fix: prevent watchdog crash (0x8BADF00D) from background reloadData" Er wird dreimal in der Geschichte von Taski auftauchen. Jedes Mal stundenlange Fehlersuche, um herauszufinden, welche Operation den Main Thread als Geisel hielt. Im April das Backup. Im Mai die AI-Suche. Der Watchdog kennt keine Gnade.

Der Worker wird geboren

Das Backend wird ein Cloudflare Worker: serverless, edge-first, global verteilt. v54.13.0. Der erste Commit des eigenen Repos. Von hier aus starten 717 Deploys in 5 Monaten. Giphy-Proxy mit KV-Cache, Endpunkt für GIFs, Privacy-Fix. Der Motor von Taski hat ein neues Herz.

Die Infrastruktur wächst

Key Versioning für E2EE-Schlüsselrotation. Call-Heartbeat-System. Sticker mit dediziertem Storage und TTL. Push Queue mit Durable Objects und ACK vom Client. Rate Limit gegen SMS-Missbrauch. Presence Pub/Sub System. Jede Woche ein neues System.

Rohe Gewalt

Manchmal reicht Eleganz nicht aus. Die Push-Nachrichten duplizieren sich, der Dedupe hält nicht stand. "Forza retry push bypassando dedupe" Am nächsten Tag: "Fix push duplicate" Und der klassische Kreislauf: der Fix des Fixes. Ein Muster, das vertraut wird. Es wird Versionen des Workers geben, die 34 Mal an einem einzigen Tag deployt werden.

Februar 2026

Null D1-Abfragen für Push-Benachrichtigungen

v56.2.0: Das Push-System berührt die Datenbank nicht mehr. Alles im KV-Cache. Es ist der Beginn einer Besessenheit für Performance, die die folgenden Monate prägen wird: Jede eliminierte Abfrage ist ein Sieg, jede eingesparte Millisekunde ein besser bedienter Nutzer.

Die Geister des Backends

Die Durable Objects bringen eine neue Art von Bug hervor: Zombie-Sessions. WebSockets, die offen scheinen, aber tot sind. Präsenz, die flackert. "Fix forceDelivery for zombie WS sessions" "alarm-based stale sweep for zombie WS detection" "self-heal stale state" Der Code lernt, sich selbst zu heilen. Wenn ein WebSocket nicht antwortet, erklärt ihn das System für tot und räumt den Zustand auf. Es ist nicht elegant. Es funktioniert.

04 Die Expansion

Taski Web wird geboren

React + Vite + Tailwind. Der Web-Client erscheint mit Pairing-QR-Code, vollständiger E2EE, WebSocket in Echtzeit. In 17 Tagen wird es ein vollständiger Client sein: Chat, Medien, Anrufe. "SECURITY: Remove open user search" Die Paranoia ist bereits Teil der DNA.

Stories und Reaktionen

Stories kommen zu Taski: wie Instagram, aber verschlüsselt. Reaktionen auf Nachrichten mit Emoji. Likes für Stories mit Push-Avatar. Die App beginnt, sich vollständig anzufühlen — nicht mehr ein Projekt, sondern ein Produkt.

Siri und QR-Schlüsselverifizierung

"Hey Siri, manda un messaggio con Taski" und es kommt E2EE-verschlüsselt an. Schlüsselverifizierung per QR-Code und Safety Number, wie bei Signal. Share Extension zum Teilen von Fotos und Videos aus jeder App, alles verschlüsselt.

Apple Watch Companion

An einem einzigen Tag bringen 6 Commits Taski auf die Apple Watch. Chat, Fotos, Avatare, Logo in der Toolbar. Echtzeit-Sync, Lade-Spinner, paralleles Fetching. Taski ist am Handgelenk. Am nächsten Tag: Fixes für UI-Freezes, Entschlüsselung abseits des Main Threads, Async-Locks. Die Watch ist klein, aber die Probleme sind groß.

Taski Desktop: Mac und Windows

Tauri 2 wickelt den Web-Client in eine native App. macOS und Windows an einem einzigen Tag. Native Menüleiste, native Benachrichtigungen mit E2EE-Vorschau, Direkt-Antwort aus der Benachrichtigung, Badge im Dock. Auto-Update, Handoff mit iOS für nahtlosen Übergang. 76 Commits werden einen vollständigen Desktop-Client aufbauen.

05 Die Intelligenz

TaskiAI: Nachrichten umschreiben

Claude Haiku hält Einzug in Taski. Ein Sparkle-Button in der Eingabeleiste schreibt deine Nachrichten um: formeller, lässiger, korrigiert, übersetzt. Der erste Schritt zur integrierten KI ist dezent — nicht aufgezwungen, sondern angeboten.

TaskiAI Chatbot

An einem Tag bauen 10 Commits einen vollständigen Chatbot. Claude Sonnet als Konversation in der Chat-Liste. Foto- und PDF-Anhänge. Markdown-Rendering. PDF-Dokumenten-Generierung. Rate Limit 20/Stunde. Automatischer Modell-Wechsel. "AI memo creation with reminders + Siri App Shortcut" Die KI erstellt Erinnerungen aus Nachrichten und plant sie über Siri.

AKD: Auditable Key Directory

Hash-Chain-Audit der öffentlichen Schlüssel. Ed25519 für Client-Signaturen. Wenn jemand versucht, deinen Schlüssel zu ändern, erkennt die kryptographische Kette es. Wie Certificate Transparency, aber für Messaging-Schlüssel. "Houston, we have a problem!" lautet der Maintenance-Screen im Weltraum-Design, der am nächsten Tag hinzugefügt wird.

April 2026

Spotify, Voice AI und Anti-Missbrauch

April ist ein Monat kreativer Explosion. Spotify-Integration mit PKCE-Auth. Voice TaskiAI mit GPT Realtime für Sprachkonversationen. KI-gestütztes Anti-Missbrauchs-System mit Llama Guard 3 + Haiku Double-Check, automatische 7-Tage-Sperre. Ban-System mit Echtzeit-Broadcast über WebSocket. Die App ist nicht nur schön — sie ist auch sicher.

Der längste Tag

59 Commits in 24 Stunden. Der absolute Rekord des Projekts. Der Worker allein sammelt 21 davon am selben Tag. Es ist ein Tag, an dem alles gleichzeitig passiert: kritische Bugs, neue Features, Hotfix auf Hotfix. Das Git-Log dieses Tages ist ein Roman für sich. Mehr Commits als das gesamte Desktop-Repo hat.

Die 72 Stunden

Drei aufeinanderfolgende Tage mit 34, 34 und 41 Commits zwischen iOS und Worker. Anti-Missbrauchs-KI, Ban-System, Echtzeit-Broadcast, Push Queue Dedup, TaskiAI Image Context. Der Worker erreicht 34 Deploys an einem einzigen Tag: im Schnitt ein Deploy alle 42 Minuten. Schlafen ist optional.

06 Die Rüstung

Audit und Hardening

Zwei Runden Sicherheits-Audit. timingSafeEqualString auf allen sensiblen Vergleichen. KI-Mentions mit atomaren D1-Abfragen. Upload Pre-Size-Check. Jeder Endpunkt kontrolliert, jede Eingabe validiert. Die Paranoia zahlt sich aus.

Voice Web Search

TaskiAI Voice erhält das Tool web_search via Tavily. Die KI kann während eines Sprachgesprächs im Web suchen und kündigt die Suche zur Transparenz an. Country Mapping nach Sprache, maximal 3 Suchen pro Anruf.

Taski kommt auf Android

Zuerst als Capacitor-Wrapper, dann die Migration zu einem nativen Kotlin-Client. Am 17.-18. Mai, in nächtlichen Sitzungen mit parallel arbeitenden KI-Agenten, nimmt der native Client Gestalt an: WebSocket, E2EE, FCM-Push, verschlüsselte Medien. Ein Bug taucht zwischen iOS und Android auf: verschlüsselte Push-Nachrichten kommen nicht an. Es fehlen zwei Zeilen im NSE von iOS, die vorher unsichtbar waren, weil der Cache den Pfad abdeckte. 10 kritische Bugs im Post-Audit behoben. Die sechste Plattform ist live.

Der akzeptierte Bug

Manchmal ist die richtige Antwort nicht „fixen“, sondern „akzeptieren“. Eine zweite Push-Nachricht kommt nach 60 Sekunden unter Burst-Bedingungen. Vier Sub-Agenten analysieren das Problem parallel. Das Ergebnis: das APNs-Volumen ist niedrig, iOS dedupliziert über Collapse-ID, und ein architekturaler Fix würde mehr zerstören als er löst. Der Bug wird dokumentiert und akzeptiert. Nicht alles muss gefixt werden. Manches muss verstanden werden.

Offensives Security Audit

Vollständiges offensives Audit: 6 Fixes deployt. XSS-Schutz, Admin-Ratelimit, Error-Oracle-Eliminierung, Country Block SMS, CORS-Whitelist. Cloudflare Access auf dem Admin-Panel. Man wartet nicht auf den Angriff: Man sucht ihn.

Apple App Attest

Attestation und Assertion von Apple integriert. Trust-Tiers für Geräte. Nur echte Apps können mit dem Backend kommunizieren. Der Bypass-Header entfernt. Die Vertrauenskette ist vollständig: vom Apple-Silizium bis zum Cloudflare-Server.

07 Das Ökosystem
Mai 2026 — Heute

6 Plattformen, ein Ökosystem

iPhone. Apple Watch. Mac. Windows. Web. Android.
3.165 Commits. 717 Worker-Deploys. 66 Datenbank-Migrationen. 322 Web-Commits. 76 Desktop-Commits.
Ende-zu-Ende-Verschlüsselung auf jeder Nachricht, jedem Anruf, jedem Foto, Video, Sticker.
KI-Integration, die die Privatsphäre respektiert. Anti-Missbrauch mit doppeltem KI-Modell.
Hash-Chained Key Directory für kryptographische Transparenz.
Apple App Attest für Hardware-Vertrauen.

59 Commits an einem einzigen Tag. Commits um 5 Uhr morgens. Tippfehler in den Commits, die die Müdigkeit verraten. „Forse“, „sembra“, „quasi perfetto“ — die Worte dessen, der etwas Größeres baut als sich selbst.

Von Initial Commit bis hierher: 183 Tage. Von einem leeren Ordner zu einem Ökosystem.

Die Geschichte
geht weiter

Jeder Commit ist ein Schritt vorwärts. Jeder gefixte Bug eine gelernte Lektion. Jedes Feature ein eingehaltenes Versprechen.

$ git log --oneline | wc -l 3165