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
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,
, , , ,
, , ,
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,
Note: It is recommended to use the same Ktor version as supabase-kt:
For 3.0.0 and above:
For versions below 3.0.0:
Main Modules
Plugins
There are several plugins available to extend the functionality of supabase-kt. They can be installed in the createSupabaseClient function.
Some highlights include:
Apollo GraphQL integration - Creates an Apollo GraphQL Client for interacting with the Supabase API.
For more information, checkout supabase-kt-plugins .
Miscellaneous
Supabase Edge Functions Kotlin - Build, serve and deploy Supabase Edge Functions with Kotlin and Gradle.
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
Groceries Store App (Android) - An e-commerce app using Auth, Postgrest and Storage
Supa Sketcher (Android) - An real-time white board app using anonymous sign-ins Auth, Postgrest and Realtime
Server-side Applications
Community Samples
Need help?
Join the #supabase-kt Kotlin Slack channel
Join the Supabase Discord and create a new post with the 'Kotlin' tag under help-and-questions
Create a discussion
Create an issue
Guides
Contribution
Checkout the contribution guidelines for more information.
Credits
Postgres Syntax inspired by https://github.com/supabase-community/postgrest-kt
Plugin system inspired by ktor
Sponsoring
If you like the project and want to support it, consider sponsoring me on Ko-fi or directly on PayPal .
Star History