your app
DatabasePostgres
Authusers + sessions
Storagefiles in buckets
Realtimerow-change stream
Edge FunctionsDeno on demand
one Postgres
supabase.dartdart
// Postgres, with a fluent SDK on top.
final rows = await supabase
.from('tasks')
.select();supabase.dartdart
// One auth.users table, every provider.
await supabase.auth.signInWithPassword(
email: 'mitch@app.com',
password: '••••••••',
);supabase.dartdart
// Files in buckets. Same permissions
// model as the database.
await supabase.storage
.from('photos')
.upload('avatar.jpg', bytes);supabase.dartdart
// Subscribe to row changes as a stream,
// no polling loop required.
supabase
.from('likes')
.stream(primaryKey: ['id'])
.listen(setRows);supabase.dartdart
// Server code on demand. Webhooks,
// secret-key work, anything client-unsafe.
await supabase.functions.invoke(
'send-invite',
body: {'email': 'leo@app.com'},
);