Architektur
Drei Schichten
- Frontend (Browser) — die gesamte UI, alle Berechnungen (finanzielle
Gesundheit, FIRE, Prognosen, Erkenntnisse), In-App-Benachrichtigungen, die
Ende-zu-Ende-Verschlüsselung der Daten und der lokale Modus (
localStorage). Funktioniert ohne Server. - Verwaltetes Backend — Supabase — Datenbank (Haushalte, Abonnements), Auth, Row Level Security und Postgres-Funktionen (Zugriffslogik, die in der Datenbank läuft).
- Eigener Servercode — Serverless-Funktionen (
/api/*-Routen in Next.js), nötig überall dort, wo ein Geheimnis oder eine Vertrauensgrenze im Spiel ist — vor allem Zahlungen (Webhook, Checkout) und das Versenden von E-Mails / Web-Push.
Wofür ein Server nötig ist
- Zahlungs-Webhook — verifiziert die Signatur und schreibt den Abo-Status mit dem Service-Role-Schlüssel (der den Browser nie erreichen darf).
- Checkout erstellen — ruft die API des Anbieters mit einem geheimen Schlüssel auf.
- E-Mail- / Web-Push-Benachrichtigungen — erfordern Planung und Schlüssel.
Wofür KEIN Server nötig ist
Das Speichern des Plans, die Anmeldung, Finanzberechnungen, Erkenntnisse, In-App-Benachrichtigungen und die Verschlüsselung — erledigt vom Frontend + Supabase. Der Verschlüsselungsschlüssel wird auf dem Gerät abgeleitet und nie an den Server gesendet.
PWA
Das Manifest + der Service Worker ermöglichen die Installation auf einem Telefon und die Offline-Nutzung im lokalen Modus. Sie sind zugleich die Grundlage für künftiges Web-Push.