Skip to content

The official companion repo for Clerk's Supabase integration guide

Notifications You must be signed in to change notification settings

clerk/clerk-supabase-nextjs

Repository files navigation

Clerk Logo for light background

Clerk, Supabase, and Next.js App Router Demo

Downloads Discord Twitter

Clerk Hero Image

Introduction

Clerk is a developer-first authentication and user management solution. It provides pre-built React components and hooks for sign-in, sign-up, user profile, and organization management. Clerk is designed to be easy to use and customize, and can be dropped into any React or Next.js application.

Supabase is an open-source, dedicated PostgreSQL database, trusted by millions of developers.

Integrating Supabase with Clerk gives you the benefits of using a Supabase database while leveraging Clerk's authentication, prebuilt components, and webhooks. To get the most out of Supabase with Clerk, you must implement custom Row Level Security (RLS) policies.

After following the Clerk + Supabase integration guide, you will have learned how to:

  • Create RLS policies that restrict access to data based on the user's Clerk ID. This way, users can only access data that belongs to them.
  • Configure Supabase to accept JWTs from Clerk
  • Create a JWT template in Clerk to generate Supabase JWTs
  • Use the Supabase JWTs to authenticate Supabase queries in your Next.js app

Deploy

Easily deploy the template to Vercel with the button below. You will need to set the required environment variables in the Vercel dashboard.

Deploy with Vercel

Running the template

git clone https://github.com/clerk/clerk-supabase-nextjs

To run the example locally, you need to:

  1. Sign up for a Clerk account at https://clerk.com.

  2. Go to the Clerk dashboard and create an application.

  3. Set the required Clerk environment variables as shown in the example env.local.example file.

  4. npm install the required dependencies.

  5. Follow the Clerk + Supabase integration guide to set up your Supabase database.

  6. npm run dev to launch the development server.

Learn more

To learn more about Clerk and Next.js, check out the following resources:

Found an issue or want to leave feedback

Feel free to create a support thread on our Discord. Our support team will be happy to assist you in the #support channel.

Connect with us

You can discuss ideas, ask questions, and meet others from the community in our Discord.

If you prefer, you can also find support through our Twitter, or you can email us!

About

The official companion repo for Clerk's Supabase integration guide

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published