Skip to main content

Services and state flow

Web dashboard
-> sign in with Google
-> select your phone and a recipient source
-> normalize, exclude, deduplicate, preview
-> create the job and its recipients as a draft
-> explicitly release the job

Supabase
-> check the account, the phone and the plan limits
-> persist phone, contact, job and recipient state
-> hand out recipient claims (leased) and record results

Android sender
-> confirm the phone is ready: permission, default SIM, job state
-> claim recipients
-> enforce the destination policy again
-> call subscription-aware SmsManager
-> report a sent, failed or uncertain outcome

Supabase is coordination storage, not an SMS gateway. The browser never dispatches a native SMS. The Android sender rechecks the job and its own readiness before each modem call and stops new attempts when state cannot be confirmed.

Analytics and error-reporting events must exclude message bodies, contact data and full phone numbers. Operational state belongs in the authorized job records, not in public logs.