Skip to content

Integration: Supabase

Supabase is the backbone — PostgreSQL, Auth, Edge Functions (Deno), and Storage.

Client

A single browser client singleton lives at src/lib/supabaseClient.js. Never create additional clients. Admin-only features use src/lib/customSupabaseClient.js.

How it's used

CapabilityWhereNotes
Authsrc/contexts/SupabaseAuthContext.jsxuseAuth()Session + user. EFs re-verify the JWT server-side.
Reads (RPC)hookssupabase.rpc('get_…'). See Data Access.
Writes (EF)servicessupabase.functions.invoke('…').
Realtimehookssupabase.channel() for frequently-INSERTed tables.
StorageEFs / specific featurese.g. trainer KYC documents.

Local development

  • npx supabase CLI runs a local stack.
  • npx supabase db push applies local migrations to remote.
  • npm run test:db runs pgTAP tests against the local DB.

Edge functions

56 functions under supabase/functions/, sharing _shared/ utilities. See Backend architecture and the EF index.

Hard rules

  • No supabase.from() anywhere in src/.
  • RLS on every user-facing table; the EF is the primary enforcement layer.