Skip to content

supabase-community/supabase-kt

Folders and files

NameName
Last commit message
Last commit date
Feb 14, 2025
Mar 17, 2025
Dec 4, 2024
Sep 18, 2024
Nov 13, 2024
Feb 4, 2025
Feb 11, 2025
Feb 11, 2025
Apr 15, 2024
Feb 14, 2025
Dec 4, 2024
Mar 17, 2025
Mar 2, 2025
Dec 23, 2024
Feb 14, 2025
Aug 15, 2024
Sep 8, 2024
Mar 17, 2025
Mar 24, 2023
Jul 2, 2024
Feb 14, 2025
Oct 1, 2024
Feb 25, 2025
Sep 18, 2024
Feb 14, 2025
Sep 12, 2024
Mar 17, 2025
Sep 9, 2024
Sep 9, 2024
Sep 18, 2024

Repository files navigation

supabase-kt

A Kotlin Multiplatform Client for Supabase.

For information about supported Kotlin targets, see the corresponding module README.

Migrating from version 2.X to 3.0.0

Note: The WASM-JS target for supported modules is only available for version 3.0.0 and above

Kotlin Ktor slack

Links

Documentation

Samples

Getting started with Android and Supabase [Video]

Quickstart

Tutorial: Build a Product Management Android App with Jetpack Compose

Dokka documentation for the latest version

Troubleshooting

Installation

Add one or more modules to your project

Available modules: auth-kt*, postgrest-kt, functions-kt, storage-kt, realtime-kt, apollo-graphql, compose-auth, compose-auth-ui, coil-integration, coil3-integration, imageloader-integration

dependencies {
    implementation("io.github.jan-tennert.supabase:[module]:VERSION")
}

* Before version 3.0.0, the module was called gotrue-kt.

If you use multiple modules, you can use the bom dependency to get the correct versions for all modules:

implementation(platform("io.github.jan-tennert.supabase:bom:VERSION"))
implementation("io.github.jan-tennert.supabase:[module]")

Note that the minimum Android SDK version is 26. For lower versions, you need to enable core library desugaring.

Add a Ktor Client Engine to each of your Kotlin targets

You can find a list of available engines here. If you plan to use the Realtime dependency, make sure to check if the engine supports WebSockets. See the Ktor docs for more information.

implementation("io.ktor:ktor-client-[engine]:VERSION")
Multiplatform Example

For targets: jvm, android, js, ios

val commonMain by getting {
    dependencies {
        //supabase modules
    }
}
val jvmMain by getting {
    dependencies {
        implementation("io.ktor:ktor-client-cio:KTOR_VERSION")
    }
}
val androidMain by getting {
    dependsOn(jvmMain)
}
val jsMain by getting {
    dependencies {
        implementation("io.ktor:ktor-client-js:KTOR_VERSION")
    }
}
val iosMain by getting {
    dependencies {
        implementation("io.ktor:ktor-client-darwin:KTOR_VERSION")
    }
}

Note: It is recommended to use the same Ktor version as supabase-kt:

For 3.0.0 and above: Ktor

For versions below 3.0.0: Ktor

Main Modules

Plugins

Miscellaneous

Samples

Multiplatform Applications

Official Samples

  • Chat Demo (Desktop/Android/iOS/Browser) - A simple chat application using the Auth, Postgrest and Realtime module.
  • File Upload Demo (Desktop/Android) - A simple bulk file upload application using the Storage module.
  • Multi-Factor Authentication (Desktop/Android/Browser) - A simple application showcasing Multi-Factor Authentication.

Community Samples

Server-side Applications

Community Samples

Need help?

Videos

Contribution

Checkout the contribution guidelines for more information.

Credits

Sponsoring

If you like the project and want to support it, consider sponsoring me on Ko-fi or directly on PayPal.