I decided to submit a weekly learning group project at the end of October. The primary objective was to learn some of the newer features we expect with React 18 and simultaneously try Supabase.

Five of the apps I built in the following weeks also used Supabase.

Remix was released publicly on November 26th. I had anticipated this and decided to wait a few days to start the fifth project. The first thing I focused on was authentication. Remix is a server framework, but there are no clear server-side authentication options with Supabase.

Weeks five and six included submissions where some users could log in without issue, but in some cases where a user had an ad-blocker, the client would not set the Remix cookie properly.

That brings us to week seven, where I decided to try and fix the authentication issue as a focus. During week seven, we would build a chat application. I self-hosted Supabase to make some changes to the authentication flow.

Full disclosure, the application I am submitting for the Supabase hackathon was coincidentally built during the same week. On December 3rd, I started with a boilerplate I am building that has remix, supabase and tailwind.

I patched GoTrue to include the access_token on the redirect to my server. With the access_token, I set a cookie directly on redirect. I make the token available to the client for data fetching without reloading the chat and real-time subscriptions.

With these changes, the participants who had previously been unable to log in without an incognito window could now log in without an issue.

Setting up the self-hosting this week coincided with hitting my limit on Organizations and Projects.

I'm excited about where the supabase platform is going. I have always been a big fan of SQL. The past seven weeks have been an excellent opportunity for me to learn some of the features of Postgres. RLS, in particular, has been easy to ignore with an express server available.

Overall the GitHub issues, open-source code and discussion boards have been a great way to gain insight into how others use the platform. I found this repo to be an incredible example, the tests especially.

A few things I need to look into next:

  • refreshing the access_token
  • database schema testing, specifically RLS
  • graphql extension

Going to try and add storage tonight for image uploads to hit the quad.

Supabase Features

  • Supabase Auth
  • Supabase Database
  • Supabase Realtime

Related Projects