Supabase KMP
A fully typed Kotlin Multiplatform client for Supabase — Auth, Database, Storage, Realtime & Edge Functions from one shared codebase.
What is this?
Supabase is a hosted backend — a database, user accounts, file storage and live updates — that your app talks to over the internet. Supabase KMP is the Kotlin library that does that talking for you.
Instead of hand-writing HTTP requests, parsing JSON and worrying about expired logins, you call normal Kotlin functions:
val client = Supabase.create(
projectUrl = "https://your-project.supabase.co",
apiKey = "your-anon-key",
)
val auth = createAuthClient(client)
val session = auth.signInWithEmail("user@example.com", "secure-password")Because it’s Kotlin Multiplatform, you write that code once and run it on Android, iPhone, desktop, the web, and more — the same logic, every platform.
New to Supabase itself? Create a free project at supabase.com, then copy your Project URL and anon key from Project Settings → API. That’s everything you need to start.
Why Supabase KMP
- Typed end to end — a
SupabaseResultmonad, value-class IDs and a PostgREST filter DSL. No stringly-typed surprises. - One codebase, every platform — share auth, data and realtime logic across mobile, desktop and web.
- Local JWT verification —
getClaims()verifies asymmetric tokens on-device against the JWKS, no server round-trip. - Native sign-in, your way — optional Google & Apple modules built on a pluggable
NativeAuthProvider; bring your own for anything else. - Built for production — configurable retry with exponential backoff, a
NETWORKerror category for offline UI, andsuspendobservability hooks for tracing and metrics. - Bring-your-own everything — pluggable session storage, HTTP engine and crypto. Nothing heavy is bundled behind your back.