Build with Flutter
Mobile apps hold publishable values only — the auth URL and anon key. Postgres, storage keys, and cache credentials live in your backend (Node, Laravel, Django …); the app talks to that API.
flutter pub add supabase_flutterawait Supabase.initialize(url: authUrl, anonKey: anonKey); // Supabase-compatiblefinal res = await Supabase.instance.client.auth.signInWithPassword(email: email, password: password);Send res.session.accessToken as the Authorization: Bearer header to your API, which verifies it against your project’s JWKS.
Uploads
Section titled “Uploads”Ask your API for a signed upload URL, then PUT the file straight to storage from the device — no S3 keys in the app.
Realtime
Section titled “Realtime”Standard WebSockets with a short-lived connection token minted by your backend — Realtime.
Host it on Impulse
Section titled “Host it on Impulse”Your Flutter app ships through the app stores — what Impulse hosts is its backend: the API on a Cloud VPS plus the bundled services it uses.