Skip to content
impulseDOCS
Get Started

Build with Expo

Same architecture as Flutter: publishable auth values in the app, everything else behind your API.

Terminal window
npx expo install @supabase/supabase-js @react-native-async-storage/async-storage react-native-url-polyfill
import '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 },
});
const { data: { session } } = await auth.auth.getSession();
await fetch(`${API_URL}/todos`, { headers: { Authorization: `Bearer ${session?.access_token}` } });

Signed upload URLs from your backend for files; WebSockets with backend-minted connection tokens for live features — Objects, Realtime.

Expo apps ship via EAS and the stores; Impulse hosts the backend — your API on a Cloud VPS with the bundled services behind it.