supa

Supabase client implemented in Gleam.

Notes:

  1. Doesn’t build on any supabase.js libraries so it can be used on the frontend and BEAM backends
  2. Currently only auth is implemented but contributes welcome

Package Version Hex Docs

gleam add supa@1

Using Authentication

Example shows magic link authentication. As this is probably running in the browser it uses midas_browser to run the task.

import supa/auth
import supa/client
import midas/browser
import gleam/javascript/promise

pub fn main() {
  // using the anon-key allows means this client can safely be used in the browser.
  let client =  client.create("xyzcompany.supabase.co", "public-anon-key")
  let email = "me@example.com"
  use result <- promise.try_await(browser.run(auth.sign_in_with_otp(client, email, True)))

  let code = todo
  // get user to enter code
  use #(session, user) <- promise.try_await(browser.run(auth.verify_otp(client, email, code)))
  // save or use the session
}

Further documentation can be found at https://hexdocs.pm/supa.

Development

gleam run   # Run the project
gleam test  # Run the tests

Credit

Created for EYG, a new integration focused programming language.

Search Document