Zum Hauptinhalt springen

Architektur

Drei Schichten

  1. 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.
  2. Verwaltetes Backend — Supabase — Datenbank (Haushalte, Abonnements), Auth, Row Level Security und Postgres-Funktionen (Zugriffslogik, die in der Datenbank läuft).
  3. 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.