DEV Community

Kiran
Kiran

Posted on

My open source contributions to Supabase

A short article about my first open source contribution to Supabase.

Supabase is an open-source Firebase alternative.

Supabase uses Gotrue as an authentication server. Gotrue is an auth API server written in Go by the Netlify team. Supabase manages its own fork of the Gotrue and is actively maintained.

Gotrue is responsible for issuing access tokens for your users, sending confirmation, magic-link, and password recovery emails, and also transacting with third-party OAuth providers to get user data.

A few months ago while I was exploring the Supabase project, I found some issues tagged with good first issue on the repository supabase/gotrue

Without previous experience with Go and Gotrue, I thought it would be hard to understand the source code and contribute to such a large project.

I learned the basics of Go in the followings weeks and set up supabase/gotrue locally on my machine.

I noticed Supabase users were asking for new SMS providers like Twilio, Vonage, Textlocal, etc.

Supabase needs an SMS provider when you want the users to log in with their mobile. Supabase will send an OTP to the user's mobile number (i.e.passwordless login).

I decided to add Vonage as a new SMS provider to supabase/gotrue. It took me around 4-5 hours to understand the code and finish the Vonage integration.

My previous experience with authentication libraries and APIs definitely helped me to understand the code much faster than I initially anticipated.

I got some initial feedback from the Supabase team on that PR, it got merged after a few days and included in the next release.

After the first PR, I successfully contributed 2 more integrations.

Added the Zoom: OAuth provider

Added Vonage: SMS provider

Added Textlocal: SMS provider

I also got a mention in the Supabase Beta January 2022 newsletter and blog post. Thanks to Paul Copplestone (Supabase CEO).

Supabase Beta January 2022

Follow me on Github

Feel free to reach me if you want any help with your first open source contribution.

Thanks

Discussion (0)