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
Easily deploy the template to Vercel with the button below. You will need to set the required environment variables in the Vercel dashboard.
git clone https://github.com/clerk/clerk-supabase-nextjs
To run the example locally, you need to:
-
Sign up for a Clerk account at https://clerk.com.
-
Go to the Clerk dashboard and create an application.
-
Set the required Clerk environment variables as shown in the example
env.local.example
file. -
npm install
the required dependencies. -
Follow the Clerk + Supabase integration guide to set up your Supabase database.
-
npm run dev
to launch the development server.
To learn more about Clerk and Next.js, check out the following resources:
Feel free to create a support thread on our Discord. Our support team will be happy to assist you in the #support
channel.
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!