# Halo Bestie — Client App Flutter mobile application for end users (clients) seeking mental health support. > See root `CLAUDE.md` for full project context and architectural decisions. ## Stack - **Framework:** Flutter (iOS + Android) - **Auth:** Firebase Auth — Google Sign-In, Apple Sign-In, Phone OTP - Fully native UI — no WebView, no Firebase-branded screens - Use `firebase_auth` + `google_sign_in` packages - **API:** Calls public Fastify backend (`/api/client/` and `/api/shared/` routes) - **Payment:** Xendit (paid sessions, optional trial) ## Key Concepts - Users are **clients** — they seek mental health support ("curhat") - Core flow: register → browse/match with mitra → book session → chat → pay - Trial period available for new users ## Conventions - Never call `/api/mitra/` or `/internal/` routes from this app - All API calls must include Firebase JWT token in `Authorization` header - Handle token refresh transparently