Skip to main content

Auth

Authentication: session, onboarding, login, signup, forgot password, app lock, and guest mode.

Guest mode

  • Users can continue as guest from Onboarding or Login to use the app without signing in.
  • Guest data (notes, categories) is stored locally only (keyed by a guest user id); no sync or server features.
  • When a guest taps an action that requires the server (e.g. sync button in a thought, Post in feed), a snackbar appears with Login, Register, and Cancel so they can sign in or dismiss.

Location

  • src/features/auth/api/auth.service.ts (Supabase Auth)
  • src/features/auth/domain/auth.store.ts (session, user state)
  • src/features/auth/ui/ — Screens and lock UI

Screens

ScreenPurpose
SplashScreenSession check, redirect to onboarding or app
OnboardingScreenFirst-time onboarding flow
LoginScreenEmail/password (and optional OAuth)
SignUpScreenRegistration
ForgotPasswordScreenPassword reset via email
LockAuthModal / LockAuthInlineUnlock app with PIN/biometric
AccountDeletedScreenPost-deletion confirmation

API

  • auth.servicesignIn, signUp, signOut, resetPassword, OAuth helpers, session refresh.

Domain

  • auth.store — Current user, session, loading, isGuest, signInAsGuest, signOut (guest sign-out clears local state only).

Guest-required snackbar

  • useGuestRequiredSnackbar (src/core/hooks/useGuestRequiredSnackbar.ts) — Returns a function that shows a snackbar with Login / Register / Cancel when a guest taps a server-requiring action (e.g. sync, Create Post).