Self-Engine
Ein persönliches Produktivitätssystem für bewusstes Arbeiten — Zeiterfassung, Projekte und Aufgaben, Finanzen, Kalender und Gewohnheiten in einer Offline-First-Plattform, als Web-, Mobile- und Desktop-App.
3
6
29
51
~1.100
34
Zeiterfassungs-Tools wissen nicht, was eine Stunde wert ist. Finanz-Apps wissen nicht, woher das Geld kommt. Kalender zeigen, was geplant war — nie, was wirklich passiert ist. Jedes Tool, das ich ausprobiert habe, behandelte Arbeit, Geld, Zeit und Gewohnheiten als getrennte Welten — die Verbindungen dazwischen existierten nur in meinem Kopf.
Self-Engine verbindet diese Domänen in einem System: Eine erfasste Stunde kennt ihr Projekt, ihren Stundensatz und ihren Platz im Kalender. Und weil das Leben nicht pausiert, wenn die Verbindung wegbricht, ist alles offline-first gebaut — jede Funktion läuft ohne Netz, auf jedem Gerät, und synchronisiert sich, sobald du wieder online bist.
Offline-first — wirklich
Jede App schreibt zuerst in eine lokale SQLite-Datenbank; ein Schreibvorgang wartet nie auf die Cloud. PowerSync stellt die Änderung in eine Warteschlange und lädt sie geordnet zu Supabase hoch, wo Postgres mit Row-Level-Security auf jeder Tabelle die einzige Quelle der Wahrheit bleibt. Entfernte Änderungen fließen über nutzerbezogene Replikations-Buckets zurück in die lokale Datenbank, und die UI aktualisiert sich über Live-Queries — manuelle Cache-Invalidierung gibt es nirgends.
Die Domäne lebt in einem geteilten Package: 29 synchronisierte Tabellen, Zod-Schemas und typisierte Collections, die Web und Mobile identisch konsumieren. Geschäftsregeln sind pure Funktionen — Guards leiten Fakten ab („dieser Zeiteintrag ist bereits bezahlt“), Workflows machen daraus Entscheidungen: ausführen, bestätigen, auswählen oder blockieren. Dieselbe Regel schützt einen Tap in der Mobile-App, einen Klick im Web und einen AI-Tool-Aufruf.
Identität ist ein einzelnes Clerk-JWT für beide Datenpfade: PowerSync validiert es für die Replikation, und die Row-Level-Security von Postgres erzwingt es bei jeder Query. Die Desktop-App ist eine Electron-Shell um die Web-App — gleiche lokale Datenbank, plus Tray-Timer, Quick Capture und signierte Auto-Updates.
App UI
React / React Native
Local SQLite
jeder Write landet zuerst hier
PowerSync
geordneter Upload · Buckets pro Nutzer
Supabase Postgres
Quelle der Wahrheit · Row-Level-Security
Ein eingebauter AI-Assistent stellt 34 typisierte Capabilities über alle Domänen bereit. Er arbeitet pull-first: Das Modell bekommt Zähler und Hinweise statt Nutzerdaten und muss über typisierte Read-Tools nachfragen. Schreibzugriffe folgen prepare → approve → execute — eine Vorschau aus Live-Daten, eine einmalige, an die exakte Eingabe gebundene Freigabe, und dann dieselbe geteilte Domain-Mutation, die auch ein Button-Klick auslösen würde. Rate-Limits, Kosten-Tracking und Zero-Data-Retention-Routing werden serverseitig erzwungen.
Den Identity-Provider im laufenden Betrieb tauschen
Jede User-ID von Supabase Auth zu Clerk zu migrieren hieß: alle Row-Level-Security-Policies in einer einzigen Migration neu schreiben und zwei unabhängige Datenpfade auf ein JWT umstellen — ohne eine einzige Offline-Queue zu verlieren.
Bidirektionaler Kalender-Sync auf Offline-Basis
Das Schwierige am Google-Calendar-Sync ist nicht die API, sondern Identität: Deterministische Event-IDs machen Creates idempotent, ETags fangen parallele Änderungen ab, abgelaufene Sync-Tokens lösen einen vollständigen Resync aus, und die Zuordnung wiederkehrender Termin-Instanzen verhindert Duplikate.
Offline-Privatsphäre ist mehr als Verfügbarkeit
Eine lokale Datenbank, die den Logout überlebt, ist ein Risiko. Die Mobile-App prüft vor dem Start, wem die lokalen Daten gehören — und löscht sie, wenn der angemeldete Account nicht passt.
Zeiterfassung
Projekte, Ordner, mehrere Timer, Pomodoro, Stundensätze und Gehalts-Metadaten — jede Stunde kennt ihren Kontext.
Aufgaben & Projekte
Sechs Status, verschachtelte Unteraufgaben, Fällig- und Plandaten, Erinnerungen — verknüpft mit Timern und Zeiteinträgen.
Finanzen
Konten, einmalige und wiederkehrende Cashflows, Umbuchungen, Auszahlungen — verbunden mit der Arbeit dahinter.
Kalender
Lokale und Google-synchronisierte Termine, Soll-Ist-Vergleich und Timer direkt aus dem Termin heraus.
Gewohnheiten
Ziele pro Tag, Woche oder Monat, Streaks, Heatmaps und Sessions — verwoben mit Arbeit und Zeit im selben System.
AI-Assistent
Fragt, bevor er handelt: typisierte Capabilities, Vorschauen aus Live-Daten und explizite Freigabe für jeden Schreibzugriff.