Build with Expo
Same architecture as Flutter: publishable auth values in the app, everything else behind your API.
npx expo install @supabase/supabase-js @react-native-async-storage/async-storage react-native-url-polyfillimport 'react-native-url-polyfill/auto';import AsyncStorage from '@react-native-async-storage/async-storage';import { createClient } from '@supabase/supabase-js';
export const auth = createClient(process.env.EXPO_PUBLIC_AUTH_URL!, process.env.EXPO_PUBLIC_AUTH_ANON_KEY!, { auth: { storage: AsyncStorage, autoRefreshToken: true, persistSession: true },});Calling your API
Section titled “Calling your API”const { data: { session } } = await auth.auth.getSession();await fetch(`${API_URL}/todos`, { headers: { Authorization: `Bearer ${session?.access_token}` } });Uploads & realtime
Section titled “Uploads & realtime”Signed upload URLs from your backend for files; WebSockets with backend-minted connection tokens for live features — Objects, Realtime.
Host it on Impulse
Section titled “Host it on Impulse”Expo apps ship via EAS and the stores; Impulse hosts the backend — your API on a Cloud VPS with the bundled services behind it.