Architektura
Trzy warstwy
- 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. - Managed backend — Supabase — baza (gospodarstwa, subskrypcje), Auth, Row Level Security i funkcje Postgres (logika dostępu wykonywana w bazie).
- 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.