Przejdź do głównej zawartości

Architektura

Trzy warstwy

  1. Frontend (przeglądarka) — cały interfejs, wszystkie obliczenia (zdrowie finansowe, FIRE, projekcje, insighty), powiadomienia in-app, szyfrowanie end-to-end danych oraz tryb lokalny (localStorage). Działa bez serwera.
  2. Managed backend — Supabase — baza (gospodarstwa, subskrypcje), Auth, Row Level Security i funkcje Postgres (logika dostępu wykonywana w bazie).
  3. Własny kod serwerowy — funkcje serverless (route'y /api/* w Next.js) potrzebne tam, gdzie wchodzi sekret lub granica zaufania — przede wszystkim płatności (webhook, checkout) oraz wysyłka e-mail / web push.

Do czego potrzebny jest serwer

  • Webhook płatności — weryfikacja podpisu i zapis statusu subskrypcji kluczem service-role (nie może trafić do przeglądarki).
  • Tworzenie checkoutu — wywołanie API dostawcy tajnym kluczem.
  • Powiadomienia e-mail / web push — wymagają harmonogramu i kluczy.

Czego serwer NIE wymaga

Przechowywania planu, logowania, obliczeń finansowych, insightów, powiadomień in-app ani szyfrowania — to obsługuje frontend + Supabase (RLS). Klucz szyfrujący powstaje na urządzeniu i nigdy nie trafia na serwer.

PWA

Manifest + service worker umożliwiają instalację na telefonie i pracę offline w trybie lokalnym. To także fundament pod przyszłe web push.