# Clerk > The most comprehensive User Management Platform. Clerk is a complete suite of embeddable UIs, flexible APIs, and admin dashboards to authenticate and manage your users. ## Product - [User Authentication](https://clerk.com/user-authentication): Powerful options to securely authenticate and manage your users - [B2B SaaS Suite](https://clerk.com/b2b-saas): Add-on features built specifically for B2B applications - [Billing](https://clerk.com/billing): The easiest way to implement subscriptions for applications ## Solutions - [React Components](https://clerk.com/react-components): Embeddable prebuilt UI components for quick and seamless integrations - [Next.js Authentication](https://clerk.com/nextjs-authentication): The fastest and most seamless authentication solution for Next.js - [Expo Authentication](https://clerk.com/expo-authentication): Implement cross-platform authentication the React way - [Authentication for AI](https://clerk.com/ai-authentication): Authentication and abuse protection tailored to AI applications ## Blog - [Add multi-tenancy to an app built with Clerk, Lovable, and Supabase](https://clerk.com/blog/multi-tenancy-clerk-lovable): Learn how to transform your single-user app into a team-ready B2B platform using Clerk Organizations with Lovable and Supabase. - [How to build an AI coding rules app with Clerk, Lovable, and Supabase](https://clerk.com/blog/build-app-with-lovable-supabase-clerk): Learn how to vibe code a secure app with Clerk, Lovable, and Supabase - [How to Build Multi-Tenant Authentication with Clerk](https://clerk.com/blog/how-to-build-multitenant-authentication-with-clerk): Multi-tenancy is one of those architectural decisions that pays off early and compounds over time. Clerk enables you to build multi-tenant authentication with ease. - [Choosing the right SaaS architecture: Multi-Tenant vs. Single-Tenant](https://clerk.com/blog/multi-tenant-vs-single-tenant): What's the difference between multi-tenant and single-tenant SaaS architecture? This guide breaks down the pros, cons, and use cases of each model—so you can choose the right B2B SaaS architecture for your app. Learn how multi-tenancy scales efficiently, when single-tenancy is the better fit, and which modern tools make tenant isolation easier than ever. - [Postmortem: June 26, 2025 service outage](https://clerk.com/blog/postmortem-jun-26-2025-service-outage): Learn more about our service outage, including the timeline of events and our next steps. - [How to Design a Multi-Tenant SaaS Architecture](https://clerk.com/blog/how-to-design-multitenant-saas-architecture): Learn how to design a multi-tenant SaaS architecture that scales from your first 10 users to your next 10,000. - [What is multi-tenancy and why it matters for B2B SaaS](https://clerk.com/blog/what-is-multi-tenancy-and-why-it-matters-for-B2B-SaaS): Learn what multi-tenancy is, why it matters for B2B SaaS apps, and how it shapes your architecture decisions. - [How OAuth Works](https://clerk.com/blog/how-oauth-works): A practical guide to OAuth Scoped Access that walks through the Authorization Code Flow with real code examples, security best practices, and clear explanations of how third-party app integrations actually work. - [Synchronize user data from Clerk to Supabase](https://clerk.com/blog/sync-clerk-user-data-to-supabase): Learn how to synchronize user data from Clerk to Supabase with webhooks and Supabase Functions - [Add subscriptions to your SaaS with Clerk Billing](https://clerk.com/blog/add-subscriptions-to-your-saas-with-clerk-billing): Learn how to quickly monetize your SaaS with subscriptions powered by Clerk Billing. - [Getting started with Clerk Billing](https://clerk.com/blog/intro-to-clerk-billing): Learn how to build a complete billing experience with Clerk and Stripe, from subscriptions and usage-based pricing to role-based access—no custom UI or webhooks required. - [Multi-tenant analytics with Tinybird and Clerk](https://clerk.com/blog/tinybird-and-clerk): How to use Clerk's Tinybird JWT template to secure Tinybird APIs for fast, easy, and secure user-facing analytics in your multi-tenant application. - [How Huntr Migrated 250K Users to Clerk: A Scalable Auth Solution for Startups](https://clerk.com/blog/huntr-testimonial): Huntr shares how migrating to Clerk gave them transparent pricing, responsive support, and a developer-first experience. - [How to take Clerk to Production](https://clerk.com/blog/how-to-take-clerk-to-production): Step-by-step guide for developers to launch a Clerk app in a production environment with a custom domain, OAuth credentials, and secure DNS configuration. - [How to take your Clerk application to production](https://clerk.com/blog/how-to-take-your-clerk-app-to-prod): Learn how to launch your app with a production instance of Clerk to maximize security and user limits. - [A practical guide to testing Clerk Next.js applications](https://clerk.com/blog/testing-clerk-nextjs): An example-packed guide to writing effective tests for Clerk applications, covering everything from integration testing with React Testing Library to end-to-end testing using Playwright. - [Implementing multi-tenancy into a Supabase app with Clerk](https://clerk.com/blog/multitenancy-clerk-supabase-b2b): Learn how to build B2B applications with Clerk and Supabase. - [How Clerk integrates with a Next.js application using Supabase](https://clerk.com/blog/how-clerk-integrates-nextjs-supabase): Learn how Supabase works with Next.js to increase security and reduce development hours, and how Clerk integrates with this stack. - [How Clerk integrates with Supabase](https://clerk.com/blog/how-clerk-integrates-with-supabase-auth): Learn how Supabase Auth works and how Clerk can provide more capabilities in less time. - [Next.js CVE-2025-29927](https://clerk.com/blog/cve-2025-29927): On March 21, 2025, Next.js disclosed a critical security vulnerability, CVE-2025-29927, that may impact your application. - [Build a blog with tRPC, Prisma, Next.js and Clerk](https://clerk.com/blog/build-a-blog-with-trpc-prisma-nextjs-clerk): Learn how to work with tRPC, Prisma, Next.js, and Clerk by building a secure blog application - [How to enrich PostHog events with Clerk user data](https://clerk.com/blog/posthog-events-with-clerk): Learn how to enrich PostHog events with Clerk user data to better understand your users and their actions on your website. - [How to build a secure project management platform with Next.js, Clerk, and Neon](https://clerk.com/blog/build-secure-project-management-nextjs): Learn a security-first approach to building web applications by building a secure project management platform with Next.js. - [Validate your SaaS idea while building an audience](https://clerk.com/blog/validate-saas): Learn how to validate a new SaaS idea with a Clerk waitlist and Loops newsletter. - [Postmortem: February 6, 2025 service outage](https://clerk.com/blog/postmortem-feb-6-2025-service-outage): Learn more about our service outage, including the timeline of events and our remediations. - [Implement Role-Based Access Control in Next.js 15](https://clerk.com/blog/nextjs-role-based-access-control): Learn Role-Based Access Control (RBAC) by building a complete Q&A platform. - [Build a Next.js sign-up form with React Hook Form](https://clerk.com/blog/nextjs-sign-up-form): Learn how to capture user credentials and save them securely with Argon2 password hashing. - [Build a Next.js login page template](https://clerk.com/blog/building-a-nextjs-login-page-template): Learn how to implement session-based authentication into a Next.js application from scratch. - [How to implement Google authentication in Next.js 15](https://clerk.com/blog/nextjs-google-authentication): Learn how to add Google authentication to your Next.js app, implement a user button for profile management, and enable Google One Tap using Clerk. - [What is middleware in Next.js?](https://clerk.com/blog/what-is-middleware-in-nextjs): Learn all about middleware in Next.js and how it works, as well as some of its common use cases, in this comprehensive guide. - [How to customize Next.js metadata](https://clerk.com/blog/how-to-customize-nextjs-metadata): Learn all about metadata and how to set it in your Next.js application - [How to set environment variables in Node.js](https://clerk.com/blog/how-to-set-environment-variables-in-nodejs): Explore the best practices and techniques you can use to set environment variables in Node.js, ensuring your app runs smoothly across different environments. - [Building a React Login Page Template](https://clerk.com/blog/building-a-react-login-page-template): Learn how session-based authentication works and how to implement it in a React app with Express. - [How to implement per-user OAuth scopes with Clerk](https://clerk.com/blog/implement-per-user-oauth-with-clerk): Learn how to implement per-user OAuth scopes with Clerk. - [Using Clerk SSO to access Google Calendar and other service data](https://clerk.com/blog/using-clerk-sso-access-google-calendar): Learn how to use Clerk to access data on behalf of the current user to request their availability from Google Calendar using an open-source, live demo application. - [Streamline enterprise customer onboarding with SAML and Clerk](https://clerk.com/blog/streamline-enterprise-onboarding-saml): Learn how to automatically enroll new users into your SAML-enabled enterprise customers. - [Clerk launches EASIE SSO and eliminates SSO fees](https://clerk.com/blog/clerk-launches-easio-sso-and-drops-all-sso-fees): EASIE SSO brings Clerk’s signature simplicity to a notoriously agonizing corner of authentication. - [How to secure Liveblocks Rooms with Clerk in Next.js](https://clerk.com/blog/secure-liveblocks-rooms-clerk-nextjs): Learn how to use Clerk user data to secure access to rooms in Liveblocks. - [Securing Node.js Express APIs with Clerk and React](https://clerk.com/blog/securing-node-express-apis-clerk-react): In this guide, we will cover how to use Clerk with Express to authenticate API requests using ClerkExpressWithAuth() and ClerkExpressRequireAuth() middleware. - [Combining the benefits of session tokens and JWTs](https://clerk.com/blog/combining-the-benefits-of-session-tokens-and-jwts): Learn about how leveraging the benefits of both session token authentication and JWTs results in the best of both approaches. - [Build a task manager with Next.js, Supabase, and Clerk](https://clerk.com/blog/nextjs-supabase-clerk): Learn how to integrate Clerk with Supabase by building a task manager. - [Comparing Clerk Webhooks vs Backend API](https://clerk.com/blog/webhooks-v-bapi): Learn when to use Clerk Webhooks or the Backend API to efficiently access user data and avoid unnecessary complexity. - [Automate Neon schema changes with Drizzle and GitHub Actions](https://clerk.com/blog/automate-neon-schema-changes-with-drizzle-and-github-actions): Learn about schema migrations and how they can be applied to a Neon database with Drizzle and GitHub Actions - [A guide to reading authenticated user data from Clerk](https://clerk.com/blog/read-user-data-guide): Learn how to access data about the currently authenticated user with Clerk's APIs and session claims. - [Role based access control with Clerk Organizations](https://clerk.com/blog/role-based-access-control-with-clerk-orgs): Learn what role based access control is and how to use it with Clerk Organizations to simplify permissions management. - [Mitigating OAuth’s recently discovered Open Response Type vulnerability](https://clerk.com/blog/open-response-type-vulnerability): How Clerk mitigated the recently discovered Open Response Type vulnerability - [Per-user B2B monetization with Stripe and Clerk Organizations](https://clerk.com/blog/per-user-licensing-with-stripe-and-clerk-organizations): Learn how to architect a B2B application for per-user licensing with Stripe and Clerk Organizations - [Build a team-based task manager with Next.js, Neon, and Clerk](https://clerk.com/blog/build-a-team-based-task-manager-with-organizations): Use Clerk Organizations to build a task management app that isolates tasks to specific teams. - [Building a Hybrid Sign-Up/Subscribe Form with Stripe Elements](https://clerk.com/blog/building-a-hybrid-sign-up-and-subscribe-form-with-stripe): Using custom flows, webhooks, and user metadata, learn how to build a single form that automatically subscribes new users. - [Welcoming Colin from Zod as our inaugural Open Source Fellow](https://clerk.com/blog/zod-fellowship): Clerk is funding the development of Zod 4 with a new Open Source Fellowship program. - [Build a modern authenticated chat application with Next.js, Ably, and Clerk](https://clerk.com/blog/authenticated-next-chat-app-with-ably-and-clerk): Learn how to build a modern, authenticated chat application using Next.js, Ably, and Clerk. This comprehensive guide covers everything from setting up real-time messaging and user authentication to implementing roles and message history. - [Build a waitlist with Clerk user metadata](https://clerk.com/blog/build-a-waitlist-with-clerk-user-metadata): Learn how to use Clerk user metadata to build a waitlist for your application, as well as an admin dashboard to toggle user access. - [How to use Clerk with PostHog Identify in Next.js](https://clerk.com/blog/how-to-use-clerk-with-posthog-identify-in-nextjs): Learn how to configure your Next.js applications to send Clerk user data to PostHog for analytics and data analysis. - [How to secure API Gateway using JWT and Lambda Authorizers with Clerk](https://clerk.com/blog/how-to-secure-api-gateway-using-jwt-and-lambda-authorizers-with-clerk): Learn what API Gateway authorizers are, how they work, and how to use them with Clerk to secure your API endpoints using JWT and Lambda authorizers. - [What are passkeys and how do they work?](https://clerk.com/blog/what-are-passkeys): Passkeys allow for a simple, yet extremely secure, sign-in experience. Learn more about what they are and how they work in this article. - [Comparing Authentication in React.js vs. Next.js](https://clerk.com/blog/comparing-authentication-react-nextjs): We compare authentication in React.js and Next.js, emphasizing the ease of securing user data with Clerk. - [How to Add an Onboarding Flow for your Application with Clerk](https://clerk.com/blog/add-onboarding-flow-for-your-application-with-clerk): Leverage Clerk’s customizable session tokens, publicMetadata and Next’s Middleware to create a robust onboarding experience within a few lines of code. - [Create Your Own Custom User Menu with Radix - Part 2](https://clerk.com/blog/create-custom-user-menu-radix-pt-2): Extend your Radix powered custom User Menu to turn it into a Sign In or User Profile component - [Introducing Webhook Workflows with Inngest & Svix](https://clerk.com/blog/clerk-inngest-svix-webhooks): We are excited to announce that Clerk has teamed up with Inngest and Svix to integrate with external systems reliably. - [Clerk raises $30M Series B from CRV and Stripe](https://clerk.com/blog/series-b): New funding will accelerate expansion beyond authentication, into authorization - [Clerk in 2023: A Year in Review](https://clerk.com/blog/clerk-2023-year-review): Wow! We had an incredible year in 2023, here is a list of everything we shipped... - [Build a Movie Emoji Quiz App with Remix, Fauna, and Clerk](https://clerk.com/blog/build-movie-emoji-quiz-with-remix-fauna-and-clerk): Test the emoji game of all the movie buffs you know by building a Movie Emoji Quiz app with Remix, Fauna, and Clerk. - [Ultimate Guide to Magic Link Authentication](https://clerk.com/blog/magic-links): In this post, we discuss the benefits of email magic links, show examples of how they work, and explain why they meet the requirements for secure, passwordless authentication. - [Create Your Own Custom User Menu with Radix](https://clerk.com/blog/create-custom-user-menu-radix): Quickly and easily build a custom user menu for your application leveraging Clerk's hooks and methods and building on Radix primitives for a custom UI. - [Introducing has(), protect(), and ](https://clerk.com/blog/introducing-authorization): Authorization is now a core feature of Clerk – learn more about our new authorization helpers for B2B SaaS - [Updated Pricing: 10,000 MAUs Free, and a new “Pro Plan”](https://clerk.com/blog/new-pricing-plans): Introducing NEW pricing for Clerk – a Pro Plan with additional features, Pro Add-Ons to fit your application's use case, and 10,000 MAUs free on all plans - [Next.js Authentication with Clerk: Streamlined SSR Handling](https://clerk.com/blog/nextjs-auth-clerk-streamlined-ssr-efficiency): Discover streamlined Next.js authentication with Clerk, simplifying SSR for efficient user data handling in web development. - [Clerk Webhooks: Data Sync with Convex](https://clerk.com/blog/webhooks-data-sync-convex): This post covers how to synchronize user data from Clerk into a Convex database using Webhooks. - [Exploring Clerk Metadata with Stripe Webhooks](https://clerk.com/blog/exploring-clerk-metadata-stripe-webhooks): Utilize Clerk Metadata & Stripe Webhooks for efficient user data management and enhanced SaaS experiences with our step-by-step tutorial. - [The Ultimate Guide to Next.js Authentication](https://clerk.com/blog/nextjs-authentication): In this guide, you will learn best practices for implementing secure authentication in your Next.js app. - [Empower Your Support Team With User Impersonation](https://clerk.com/blog/empower-support-team-user-impersonation): User impersonation enables support teams to assist customers without compromising privacy and security, essential for delivering great CX. - [Clerk Webhooks: Getting Started](https://clerk.com/blog/webhooks-getting-started): Learn how to get started with Webhooks to build integrations in a Nextjs application with Clerk's fully-featured authentication. - [A Complete Guide to Session Management in Next.js](https://clerk.com/blog/complete-guide-session-management-nextjs): Session management allows users to stay logged in across multiple tabs devices and maintains security by tracking user sessions. - [The Advanced Guide to Passwordless Authentication in Next.js](https://clerk.com/blog/advanced-guide-passwordless-authentication-nextjs): Learn how to implement passwordless authentication in Next.js using magic links, social OAuth and SAML SSO. - [How We Roll – Chapter 10: Roundup](https://clerk.com/blog/how-we-roll-roundup): How We Roll is a deep dive into how Clerk implements authentication. This chapter provides a roundup of the topics discussed in this series. - [How We Roll – Chapter 9: Infrastructure](https://clerk.com/blog/how-we-roll-infrastructure): How We Roll is a deep dive into how Clerk implements authentication. This chapter covers the infrastructure that powers Clerk’s authentication capabilities. - [Password-Based Authentication in Next.js](https://clerk.com/blog/password-based-authentication-nextjs): This article explores password authentication, risks, and better solutions like SSO, MFA, and passwordless login. - [Exploring the Intricacies of OTP Authentication in Next.js](https://clerk.com/blog/otp-authentication-nextjs): Learn how one-time passwords work, best practices for using OTPs in authentication, and how to implement OTPs in Next.js. - [Build a Cookie Clicker App with Clerk and Hasura](https://clerk.com/blog/build-a-cookie-clicker-app-with-clerk-and-hasura): In this tutorial we will use Clerk with Hasura to build a full-stack Next.js app with a database and GraphQL API, all without having to write any backend code. - [RedwoodJS Blog Tutorial with Clerk](https://clerk.com/blog/redwoodjs-blog-tutorial-with-clerk): Branching off from the excellent (and mighty) Redwood tutorial, the guide will lead you through setting up Clerk as the authentication provider. - [How We Roll – Chapter 8: Sessions](https://clerk.com/blog/how-we-roll-sessions): How We Roll is a deep dive into how Clerk implements authentication. This chapter covers how Sessions unlock security and performance capabilities for Clerk. - [How We Roll – Chapter 7: JWT Single Sign-On](https://clerk.com/blog/how-we-roll-jwt-sso): How We Roll is a deep dive into how Clerk implements authentication. This chapter covers how Clerk integrates with BaaS providers with JWT SSO. - [Migrating from Pages Router to App Router: An Incremental Guide](https://clerk.com/blog/migrating-pages-router-to-app-router-an-incremental-guide): Already know the /pages directory? Here's a simple way to migrate to the /app directory in Next.js 13. - [Social SSO in Next.js](https://clerk.com/blog/social-sso-in-next-js): In this article, we explore how to incorporate OAuth SSO into a Next.js project with JSON Web Tokens (JWTs) and the new app router from Next.js. - [How We Roll – Chapter 6: User Profile](https://clerk.com/blog/how-we-roll-user-profile): How We Roll is a deep dive into how Clerk implements authentication. This chapter explores how we help developers ship a fully-featured account management UI. - [How to Authenticate API Requests with Clerk & Express](https://clerk.com/blog/how-to-authenticate-api-requests-with-clerk-express): In this tutorial, we'll explore how to use Clerk with Express to authenticate API requests using middleware. - [How We Roll – Chapter 5: Customization](https://clerk.com/blog/how-we-roll-customization): How We Roll is a deep dive into how Clerk implements authentication. This chapter covers the various ways developers can customize Clerk's UI components. - [How We Roll – Chapter 4: Email Verification](https://clerk.com/blog/how-we-roll-email-verification): How We Roll is a deep dive into how Clerk implements authentication. From codes to links to SSO, this chapter is about when and how we verify emails. - [Secure Authentication in Next.js with Email Magic Links](https://clerk.com/blog/secure-authentication-nextjs-email-magic-links): In this guide, you will learn how to implement email magic links in Next.js. - [How We Roll – Chapter 3: Multifactor](https://clerk.com/blog/how-we-roll-multifactor): How We Roll is a deep-dive into how Clerk implements authentication. This chapter is on something you know and something you have: multifactor authentication! - [Announcing A New Password Experience](https://clerk.com/blog/a-new-password-experience): The team has been focused on making a first in class experience for your end users when it comes to passwords. Let's talk about the new features we introduced. - [How We Roll – Chapter 2: Avatars](https://clerk.com/blog/how-we-roll-avatars): How We Roll is a deep-dive into how Clerk implements authentication. In this chapter, we discuss why avatars should never be an afterthought. - [How We Roll – Chapter 1: Passwords](https://clerk.com/blog/how-we-roll-passwords): How We Roll is a deep-dive into how Clerk implements authentication. In this first chapter, we discuss passwords – the original form of authentication. - [Seamless Integration: How Clerk Streamlined OpusFlow's User Authentication](https://clerk.com/blog/opusflow): Learn how Clerk's user-friendly authentication system streamlined OpusFlow's SaaS integration, enhancing productivity and performance. - [Stable Support for the Next.js App Router, plus a Middleware Update!](https://clerk.com/blog/nextjs-13-4): App Router support is out of beta, plus we've launched a major middleware update. - [Generating and Using UUIDs in React](https://clerk.com/blog/generating-and-using-uuids-in-react): Learn the significance of UUIDs in full-stack apps, their optimal usage, and how to implement them in React apps. - [Setting and Using Cookies in React](https://clerk.com/blog/setting-and-using-cookies-in-react): Learn how to set up cookies in React with this guide! You'll create a login page and store user information using cookies. - [Adding JWT Authentication to React](https://clerk.com/blog/adding-jwt-authentication-to-react): Learn how to implement JSON Web Token (JWT) authentication in a React app using a standard flow, and how Clerk can make the process even easier. - [Understanding and Properly Using React Global State](https://clerk.com/blog/understanding-and-properly-using-react-global-state): Explore the benefits of global state and discover two methods to implement it: the React context API and the Clerk React context API component. - [Implementing reCAPTCHA in React](https://clerk.com/blog/implementing-recaptcha-in-react): Learn how to protect your React app from spam and abuse using reCAPTCHA. Follow this tutorial to create a sign-up form with reCAPTCHA validation. - [Implementing OAuth 2.0 to React for User Authorization](https://clerk.com/blog/oauth2-react-user-authorization): Learn how to implement OAuth 2.0 in a React app for user authorization. OAuth 2.0 lets users share information securely without passwords. - [Clerk raises $15m Series A led by Madrona](https://clerk.com/blog/series-a): Clerk surpasses a million managed users and taps into executive experience from Auth0 and Vercel - [Refactoring our frontend API key: Familiar DX is the best DX](https://clerk.com/blog/refactoring-our-api-keys): We switched to the familiar Publishable Key, but we changed less than you'd think - [Validating, Creating, and Styling React-Bootstrap Forms](https://clerk.com/blog/validate-create-style-react-bootstrap-forms): Create a complete login and sign-up flow with React Bootstrap forms, then learn how to use tools like Clerk to easily manage authentication and authorization. - [Adding Google Login to Your Next.js 13 Application](https://clerk.com/blog/add-google-login-next13-app): Compare adding Google Login to your Next.js 13 Application by building it yourself, with using a third-party service like Clerk. - [Guide to Conditional Rendering in React](https://clerk.com/blog/conditional-rendering-react): Learn how conditional rendering is used to show a personalized UI, complete a user flow without changing routes, or show a loading or error state. - [Next.js 13 Routes Part 2: Implementing Protected Routes](https://clerk.com/blog/next13-api-routes-2): Learn how to create protected routes using React Context as well as how using Clerk makes this process easier. - [Next.js 13 Routes Part 1: Getting Started with Next.js API Routes](https://clerk.com/blog/next13-api-routes-1): API routes in Next.js provide a solution to build server-side API logic. - [Clerk and Create T3 Turbo](https://clerk.com/blog/clerk-t3-turbo): This guide shows you how to integrate Clerk into T3-Turbo so you can have user management for everyone. - [Clerk raises $6.2m led by Andreessen Horowitz](https://clerk.com/blog/a16z-seed): Clerk is building the future of authentication for React, where the Component is the new API - [How to skip Next.js middleware for static and public files](https://clerk.com/blog/skip-nextjs-middleware-static-and-public-files): Stop your Next.js middleware from running on static assets like images and Next.js internals - [Let's stop arguing about JWTs and just fix them](https://clerk.com/blog/lets-stop-arguing-about-jwts-and-just-fix-them): JWTs have won. It's time we embrace them and fix the dangerous implementations. - [How to pass a value from Next.js middleware to API routes and getServerSideProps](https://clerk.com/blog/nextjs-pass-value-from-middleware-to-api-routes-and-getserversideprops): Compute a value in middleware and pass it to your API route or getServerSideProps. Works in both Node and Edge runtimes. - [@clerk/nextjs v4.5](https://clerk.com/blog/clerk-nextjs-4-5): New in 4.5: Authentication moves to middleware, switchable runtime support, improved developer experience, preparation for Layouts - [Passwordless Authentication: Which Option Is Right for Your App](https://clerk.com/blog/passwordless-authentication): Passwordless Authentication is on an upward trajectory thanks to advancements in this space and recent password breaches. - [What are Webhooks? The Ultimate Guide ](https://clerk.com/blog/what-are-webhooks): Webhooks allow apps to communicate with one another. Find out best practices and more here. - [What Is an SDK and How Is It Different From APIs?](https://clerk.com/blog/sdk-vs-api): While an SDK and an API often work together in the software development process, they each serve a different function. Find out what that is here. - [A ‹Component/› is worth a thousand APIs](https://clerk.com/blog/a-component-is-worth-a-thousand-apis): Clerk is the only authentication service that offers a User Profile component. It sounds incremental, but it's 10x more work – this post explains why - [User Management and How It Relates to Authentication](https://clerk.com/blog/user-management-in-authentication): User management assists in authenticating and storing users. Find out more about it here. - [Building a Custom User Profile with Clerk](https://clerk.com/blog/building-custom-user-profile-with-clerk): Authentication is one of the most critical functions of securing your applications; however, it's also one of the most challenging functions to implement. - [Build an App with Clerk, Prisma Cloud, and Next.js](https://clerk.com/blog/build-app-with-clerk-prisma-nextjs): Clerk is an easy-to-use, customizable, and secure customer identity platform that provides you with multiple authentication strategies for your application. - [The Journey to Modern Web Authentication](https://clerk.com/blog/the-journey-to-modern-web-authentication): A blog post about the story of Clerk; our journey of bringing seamless authentication to the Modern Web, where we stand now, and what lies ahead. - [What is Next.js?](https://clerk.com/blog/what-is-nextjs): Next.js is a framework in the React ecosystem that is primarily used for developing JavaScript applications. Understand the ins and outs below. - [Clerk joins the Netlify Jamstack Innovation Fund](https://clerk.com/blog/clerk-joins-netlify-jamstack-innovation-fund): Clerk powers authentication for over 5,000 Jamstack teams – now we're working with Netlify to further our commitment to the ecosystem - [Authentication vs. Authorization: What's the Difference?](https://clerk.com/blog/authentication-vs-authorization): Understand the differences between authentication vs. authorization and the purpose they both serve. - [Refactoring Stripe's API for frontend access](https://clerk.com/blog/refactoring-stripes-api-for-frontend-access): We built `use-stripe-subscription` to make it easier for React developers to implement Stripe Billing - [Quickly Build a User Switcher, Just Like Gmail](https://clerk.com/blog/build-a-user-switcher-just-like-gmail): Build an app with complete authentication and a user switcher just like gmail has. - [The New Wave Stack](https://clerk.com/blog/new-wave-stack): A custom Remix stack with Clerk, Fauna, and Netlify. - [Three best practices for building React REST SDKs](https://clerk.com/blog/best-practices-for-building-react-rest-sdks): For optimal developer experience, React SDKs require completely different patterns than Node - [Next.js SSR authentication with Clerk](https://clerk.com/blog/next-js-ssr-authentication-with-clerk): Next.js SSR authentication is easy with Clerk – just a few lines of code to get started. - [How to skip CORS preflights and speed up your API with polyfills](https://clerk.com/blog/skip-cors-options-preflight): CORS preflights add unnecessary latency to requests. Learn to use "simple" requests to skip the preflight entirely. - [The future of authentication is both stateful and stateless](https://clerk.com/blog/future-of-auth-stateless-and-stateful): Stateful authentication is more secure. Stateless authentication is faster. A hybrid approach delivers the best of both worlds. - [It's the little things: Three developer experience delights of our Remix authentication package](https://clerk.com/blog/remix-delightful-developer-experiences): We integrate with a lot of React frameworks - here's what we love most about our Remix authentication package - [Unicorn or Chameleon? Two strategies for exporting customizable React components](https://clerk.com/blog/exporting-customizable-react-components): React Components are the future of APIs – but how can developer tools companies enable robust customization? We explore two strategies. - [Just-in-time API requests are replacing webhooks](https://clerk.com/blog/just-in-time-api-requests-are-replacing-webhooks): Only 30% of Clerk customers use webhooks to sync user data into their own database. Instead, most skip syncing and use our APIs to retrieve data in real-time. - [Introducing Web3 Authentication](https://clerk.com/blog/introducing-web3-authentication): Clerk is saving Web3 developers from the greatest evils of the Web2 platform: cookies, multifactor authentication, and profile enrichment - [How to compete and WIN in a software economy [Part 2]](https://clerk.com/blog/how-to-complete-and-win-in-software-economy-2): In this next part, we'll discuss how to identify 'core' vs. 'non-core' development & how thoughtful outsourcing can be used to develop process power. - [How to compete and WIN in a software economy [Part 1]](https://clerk.com/blog/how-to-complete-and-win-in-software-economy): Software has eaten the world and almost every business is a software business. How do you develop a competitive advantage and win in today's software economy? - [The Ultimate Guide To JSON Web Tokens (JWTs) and Token-Based Authentication](https://clerk.com/blog/guide-JWT-authentication-JSON-Web-Tokens): JSON Web Tokens, more commonly known as JWTs, are encoded and cryptographically signed data that allows for the secure transfer of information. - [2021: The Year Authentication Saw a Resurgence (and Why)](https://clerk.com/blog/2021-the-resurgence-of-authentication): Authentication saw a resurgence as developers demanded better tools for Modern Web frameworks like Next.js, and users demanded easier sign-in options - [Consider dropping your users table](https://clerk.com/blog/offload_user_table): The same way we would rather let Stripe handle your credit card, we'll let Clerk handle your phone numbers, emails and sessions. - [Trading Experts | Case Study](https://clerk.com/blog/trading-experts): A case study of how Trading Experts used Clerk to quickly implement the authentication and user management features they needed. - [Clerk is hiring a senior frontend team to expand our full-stack component library](https://clerk.com/blog/hiring-frontend-full-stack-components): Seeking experts in CSS, browser APIs, JS bundling, React, react-native, Swift, Kotlin and Developer Experience - [The Ultimate Guide to BCrypt and Authentication Protocols](https://clerk.com/blog/bcrypt-hashing-authentication-encryption): Learn why bcrypt is the industry standard hashing algorithm for authentication - including its history and how it compares to other protocols. - [History and Rise of "Passwordless"](https://clerk.com/blog/passwordless-history-popularity): Learn the history of passwordless, and how it became popularized. From OTPs to MFA to mobile. - [Session management: What it is and why your security depends on it](https://clerk.com/blog/what-is-session-management): Learn about session management, its components, and security concerns. - [Don’t underestimate the value of a secure, seamless ‘forgot password’ flow](https://clerk.com/blog/forgot-password-sspr): Learn about “forgot password” flows, how they work, and the best practices to keep in mind. - [Add authentication to your Gatsby app](https://clerk.com/blog/add-authentication-to-your-gatsby-app): Learn how to add authentication and user management to your Gatsby app with Clerk. - [Authenticated data access using Clerk, Prisma, and MongoDB - A post-making fullstack app](https://clerk.com/blog/clerk-prisma-mongodb-fullstack-post-app): Add a complete authentication workflow with authenticated access to your Prisma API layer to your web application. - [Generating sortable Stripe-like IDs with Segment's KSUIDs](https://clerk.com/blog/generating-sortable-stripe-like-ids-with-segment-ksuids): Learn how Clerk generates resource IDs with inspiration from Stripe and Segment. - [Serverless authentication with Clerk and Firebase](https://clerk.com/blog/serverless-auth-with-clerk-and-firebase): Protect your Firebase Cloud Functions with user authentication using Clerk. - [Row-level access for your Airtable-powered application with Clerk](https://clerk.com/blog/row-level-access-for-your-airtable-powered-application): Learn how to add complete user authenticated access to your Airtable data API using Clerk. - [Build a premium recipes app with Clerk and Firebase](https://clerk.com/blog/build-a-premium-recipes-app-clerk-firebase): Learn how to connect Clerk as an authentication and user management solution together with your Firebase as your backend. - [Clerk raises $4 million to build the next-gen authentication and user management platform for developers](https://clerk.com/blog/clerk-raises-for-next-gen-auth): Clerk raised a $4 million seed round led by S28 capital with Andrew Miklas (cofounder, PagerDuty) joining our board. - [Designing fast sign in forms— diving into the data](https://clerk.com/blog/designing-fast-sign-in-forms): Key insights on building fast sign in forms with Social Sign In, password-based, and passwordless authentication. - [Build or Buy? A Look at User Management with Next.js: Part 1](https://clerk.com/blog/build-or-buy-user-management-with-nextjs-1): In this article, you'll learn the pros and cons of developing or buying a user management system so you’re ready to make the right choice for your project. - [How we use End To End tests to bulletproof our authentication flows across browsers](https://clerk.com/blog/how-we-use-end-to-end-tests-to-bulletproof-our-authentication-flows-across-browsers): Due to the evolution of tooling and the shift towards high-velocity product development, End To End testing is a regular topic of discussion for small teams. - [Build a to-do app with Clerk and Hasura— and no backend code](https://clerk.com/blog/build-a-to-do-app-with-clerk-and-hasura-and-no-backend-code): Learn to build a to-do app using Clerk for authentication, Hasura for data storage and access, and Next.js for the frontend. - [How HttpOnly cookies help mitigate XSS attacks](https://clerk.com/blog/how-httponly-cookies-help-mitigate-xss-attacks): HttpOnly cookies do not prevent cross-site scripting (XSS) attacks, but they do lessen the impact and prevent the need to sign out users after the XSS is patched. HttpOnly cookies are not a substitute for XSS prevention measures. - [How to deploy Clerk using Vercel with one click](https://clerk.com/blog/clerk-vercel-one-click-deployment): If you are looking to implement Auth in the easiest way possible, this is the tutorial for you. Deploy in 5 minutes. - [Introducing Clerk: All of user management, not just authentication](https://clerk.com/blog/all-of-user-management-not-just-authentication): The task came with a sense of helplessness. We knew what "great" looked like, but it was impractical to build all of that functionality. ## Changelog - [Organization Invitation Sorting](https://clerk.com/changelog/2025-07-11-org-invitation-sorting): - [Introducing top-level Features. Plus redesigned Roles & Permissions](https://clerk.com/changelog/2025-07-10-top-level-features-plus-roles-and-permissions): Model your app's features right inside of Clerk - [New Dashboard Users Now Onboarded as Organizations](https://clerk.com/changelog/2025-07-10-new-account-structure): Dashboard accounts now start as an Organization, as opposed to Personal Accounts. - [CVE-2025-53548](https://clerk.com/changelog/2025-07-09-cve-2025-53548): - [CSS variables support](https://clerk.com/changelog/2025-07-08-css-variables-support): Clerk's appearance system now supports CSS variables for seamless design system integration and dynamic theming - [Increased Backend Rate Limits](https://clerk.com/changelog/2025-07-03-bapi-rate-limits): - [Billing Webhooks](https://clerk.com/changelog/2025-07-02-billing-webhooks): Billing webhooks are now available. - [MCP Server Support for Next.js](https://clerk.com/changelog/2025-06-25-mcp-server-nextjs): Build an MCP service into your application with Clerk and Next.js in 5 minutes - [Multiple domains for enterprise SSO connections](https://clerk.com/changelog/2025-06-25-multiple-domains-sso): Enterprise SSO connections now support multiple domains, making it easier to manage authentication across different subdomains and domains within your organization. - [Tailwind CSS v4 support](https://clerk.com/changelog/2025-06-17-css-layer-name): Introducing the `cssLayerName` option for compatibility with Tailwind CSS v4, allowing Clerk styles to be wrapped in a dedicated CSS cascade layer. - [OAuth Provider Improvements](https://clerk.com/changelog/2025-06-13-oauth-improvements): Expanded OAuth functionality that paves the way for MCP support - [Billing MRR Report](https://clerk.com/changelog/2025-06-11-billing-mrr-report): View Monthly Recurring Revenue trends with a new interactive chart. - [Improved Invoices](https://clerk.com/changelog/2025-06-09-improved-invoices): We've improved the invoice format to make things easier to read. - [Subscription Payments](https://clerk.com/changelog/2025-06-06-payment-history): View all subscription payment attempts directly from the Dashboard. - [All Time Sign-up Count in Dashboard](https://clerk.com/changelog/2025-06-03-all-time-users-report): A new report on the dashboard shows the all time sign-ups for your application. - [Redesigned Dashboard Overview](https://clerk.com/changelog/2025-05-28-redesigned-dashboard-overview): We're launching a fresh new look for the dashboard overview, making it easier to monitor what matters. - [Global support for Clerk Billing](https://clerk.com/changelog/2025-05-13-billing-global-support): We're excited to announce that Clerk Billing now supports international Stripe accounts. - [Session Token JWT v2](https://clerk.com/changelog/2025-04-14-session-token-jwt-v2): Announcing the release of Session Token JWT v2, featuring a more compact and structured claim format. - [Supabase Third-Party Auth Integration](https://clerk.com/changelog/2025-03-31-supabase-integration): Integrate Clerk with Supabase as a third-party authentication provider. - [Reverification](https://clerk.com/changelog/2025-03-31-reverification): Protect sensitive actions by prompting users to reverify their identity. - [Flutter SDK Public Beta](https://clerk.com/changelog/2025-03-26-flutter-sdk-beta): We're excited to announce the beta release of our official Flutter SDK, bringing Clerk's powerful authentication and user management capabilities to Flutter applications. - [Automatic emails to users signing in with an unrecognized devices](https://clerk.com/changelog/2025-03-20-sign-in-emails): Introducing a new email template when your users sign-in with an unrecognized device - [Introducing @clerk/agent-toolkit](https://clerk.com/changelog/2025-03-7-clerk-agent-toolkit): Add Clerk to your agentic workflows with our new agent toolkit. - [Clerk as an OpenID Connect provider](https://clerk.com/changelog/2025-02-13-clerk-oidc): Use your Clerk instance as an OpenID Connect provider (OIDC). - [Passkeys support for Expo](https://clerk.com/changelog/2025-02-10-expo-passkeys): Enable seamless, passwordless authentication in your Expo apps with Passkeys. - [SAML Native Flows](https://clerk.com/changelog/2025-02-05-saml-native): Introducing SAML Native Flows for Expo and iOS SDKs, enabling secure enterprise authentication directly within your mobile apps - [Ruby Backend SDK 4.0](https://clerk.com/changelog/2025-01-30-ruby-sdk-4): With expanded support for Rails, Rails API, Sinatra, Rack and more - [Member search added to ](https://clerk.com/changelog/2025-01-28-search-on-org-profile): Easily find organization members on `` by searching for any information related to them. - [Stable release of React Router SDK](https://clerk.com/changelog/2025-01-23): The React Router SDK is no longer in beta. - [Combined sign-in-or-up](https://clerk.com/changelog/2025-01-16-sign-in-or-up): Start collecting sign-in and sign-ups within a single flow. - [End of Support for Node SDK](https://clerk.com/changelog/2025-01-10-node-sdk-eol): Completing transition period for Clerk Node SDK - [C# Backend SDK](https://clerk.com/changelog/2025-01-09-csharp-sdk): We've released a new backend SDK for C#! Here's a quick overview of its capabilities and some resources to help you get started. - [Official SDK for Vue and Nuxt](https://clerk.com/changelog/2025-01-07-vue-and-nuxt-sdk): A community SDK gets its graduation day 🎓 - [URL-based active organization sync](https://clerk.com/changelog/2024-12-20-sync-org-with-url): Use an organization slug in your application URL to automatically set the active Clerk organization. - [Enterprise Connections for Organizations](https://clerk.com/changelog/2024-12-18-sso-per-org): Link Organizations to SSO Connections, allowing users to authenticate with their IdP and join organizations seamlessly. - [Improved offline support for Expo](https://clerk.com/changelog/2024-12-12-expo-offline-support): A better experience for your Expo apps. - [React Router SDK Beta](https://clerk.com/changelog/2024-12-12-react-router-beta): Add authentication and authorization to your React Router application in minutes with this new Clerk SDK. - [Enterprise Connections for Custom OAuth Providers](https://clerk.com/changelog/2024-12-11-custom-oauth-ent-connections): Configure enterprise single sign-on through any custom OAuth provider - [Reverification: Public Beta](https://clerk.com/changelog/2024-12-02-reverification-beta): Reverification protects sensitive actions by prompting users to confirm their identity when needed. - [Chrome Extension SDK 2.0](https://clerk.com/changelog/2024-11-22-chrome-extension-sdk-2.0): We've released version 2.0 of the Chrome Extension SDK. Learn about the SDK's new features and get started building your Chrome Extension today. - [EASIE Support and no more SSO fees](https://clerk.com/changelog/2024-11-20-easie): This easiest way for enterprises to adopt full-featured SSO. - [Waitlist mode](https://clerk.com/changelog/2024-11-20-waitlist-sign-up-mode): Get your product launch off to a smooth start with Waitlist Sign-up mode. - [Legal consent](https://clerk.com/changelog/2024-11-11-legal-consent): Customize your Sign Up with a Terms of Service and Privacy Policy checkbox. - [Export your users directly from the Dashboard](https://clerk.com/changelog/2024-10-23-export-users): Export your users whenever you need to. They're yours, after all. - [@clerk/nextjs v6](https://clerk.com/changelog/2024-10-22-clerk-nextjs-v6): Introducing `@clerk/nextjs` v6, with support for Next.js 15. - [Fastify SDK 2.0](https://clerk.com/changelog/2024-10-10-fastify-v5-support): Introducing Clerk's Fastify SDK 2.0 with support for Fastify v5 - [Express SDK](https://clerk.com/changelog/2024-10-08-express-sdk): Add authentication and authorization to your Express application in minutes with the new Clerk SDK - [Python Backend SDK](https://clerk.com/changelog/2024-10-08-python-backend-sdk-beta): We've released a new backend SDK for Python! Here's a quick overview of its capabilities and some resources to help you get started. - [Consolidating SSO Connections in the Dashboard](https://clerk.com/changelog/2024-10-03-sso-connections-page): A more intuitive way to add SSO Connections. - [Clerk + Coinbase Developer Platform: Advancing tools for the Web3 ecosystem](https://clerk.com/changelog/2024-10-01-coinbase-smart-wallet): Improve your Web3 application development experience using Clerk and Coinbase - [Disable additional identifiers for users who sign-in with Enterprise connections](https://clerk.com/changelog/2024-09-30-disable-additional-accounts-for-saml): More granular control for your users who sign-in via Enterprise Connections. - [Say goodbye to unwanted sign-ups with Restricted mode](https://clerk.com/changelog/2024-09-30-restricted-sign-up-mode): Introducing sign-up modes, starting with Restricted mode. Take control of who can join your app and prevent unexpected sign-ups. - [TanStack Start SDK Beta](https://clerk.com/changelog/2024-09-11-tanstack-start-beta): Add authentication and authorization to your TanStack Start application in minutes with the new Clerk SDK. - [Host multiple Clerk apps on the same domain](https://clerk.com/changelog/2024-09-09-multiple-apps-same-domain): We are thrilled to introduce a highly anticipated feature that allows multiple applications to be hosted under the same domain. - [Hugging Face SSO Provider](https://clerk.com/changelog/2024-08-29-huggingface-oauth-provider): Enable users to sign in to your application using their Hugging Face accounts. - [Local Credentials in Expo](https://clerk.com/changelog/2024-08-21-expo-local-credentials): Use biometric authentication for returning users in your Expo application. - [Add any social sign-in option with Custom Providers](https://clerk.com/changelog/2024-08-20-custom-oauth-providers): Instantly add and configure any OpenID Connect (OIDC) compliant OAuth provider - [iOS SDK Beta](https://clerk.com/changelog/2024-08-19-ios-sdk-beta): Our new iOS SDK is here to ensure that your users enjoy a smooth, integrated sign-in experience, whether they're on an iPhone, iPad, or any other Apple device. - [Limit how many organizations users can create](https://clerk.com/changelog/2024-08-13-limit-org-creation): More granular control over organization creation limits - [Add custom menu items to ](https://clerk.com/changelog/2024-08-06-userbutton-custom-menu-items): With our latest release, you can now add custom menu items to `` component. - [Set Active Organization by Slug](https://clerk.com/changelog/2024-08-02-set-active-by-slug): It is now possible to set an active organization by URL slug, making it easier to use the URL as the source of truth for the active organization. - [Cognito password migrator](https://clerk.com/changelog/2024-08-02): Seamlessly migrate AWS Cognito user passwords into Clerk - [Development Mode UI Changes](https://clerk.com/changelog/2024-08-02-dev-notice): - [Notice: Plans to EOL Gatsby SDK](https://clerk.com/changelog/2024-08-01-gatsby-eol): Initiating transition period for Clerk's official Gatsby SDK - [Clerk Expo v2](https://clerk.com/changelog/2024-07-26-clerk-expo-v2): Introducing Clerk Expo SDK v2 with support for Expo Web - [Passkeys are now Generally Available](https://clerk.com/changelog/2024-07-24-passkeys-ga): Passkeys are now generally available for all Clerk users - [Improved support for Cypress testing](https://clerk.com/changelog/2024-07-24-improved-cypress-support): Enhanced end-to-end testing with Clerk using Cypress - [Official SDK for Astro](https://clerk.com/changelog/2024-07-18-clerk-astro): Our community SDK is all grown up 🧑‍🚀 - [Remix SPA mode](https://clerk.com/changelog/2024-07-17-remix-spa-mode): @clerk/remix now supports Remix SPA Mode - [Next.js Dynamic Keys](https://clerk.com/changelog/2024-07-16-dynamic-keys): Keys and options passed to `clerkMiddleware()` at runtime are available in Clerk’s server-side helpers. - [Google One Tap](https://clerk.com/changelog/2024-06-25-google-one-tap): Introducing support for Google One Tap for seamless, one-click user sign-ins and sign-ups! - [Clerk Elements (Beta)](https://clerk.com/changelog/2024-05-02-elements-beta): Introducing Clerk Elements, a new set of unstyled UI primitives that make it easy to build completely custom user interfaces on top of Clerk's API. - [Testing Tokens](https://clerk.com/changelog/2024-04-24-testing-tokens): Unlocking end-to-end testing in Clerk applications - [Passkeys in Beta](https://clerk.com/changelog/2024-04-22): Passkeys are a simple-to-use and secure passwordless way to authenticate your users. Now available for your applications in Beta. - [Clerk Core 2 is now Generally Available](https://clerk.com/changelog/2024-04-19): Our latest major release (Core 2) is now Generally Available. Enjoy the new foundation of Clerk - featuring refreshed UI components, improved middleware helpers, and enhanced overall performance. - [Visual Captcha for Bot Protection](https://clerk.com/changelog/2024-04-19-visual-captcha): Fight bot detection false positives by showing a visual captcha challenge - [IdP-initiated SSO & SAML is Generally Available](https://clerk.com/changelog/2024-04-01): SAML Enterprise Connections are now GA and we've added IdP Initiated SSO - [Community SDK support for Astro](https://clerk.com/changelog/2024-03-28): You can now secure your Astro website with Clerk! - [Introducing Clerk Core 2 Beta](https://clerk.com/changelog/2024-02-29-core-2): Our latest beta release ships with an improved design and UX for built-in components, new middleware for Next.js, a CLI tool to help you upgrade, and a lot of bug fixes, DX improvements, and deprecation removals. - [Data Privacy Framework (DPF) certification](https://clerk.com/changelog/2024-02-29): The DPF bridges the gap between US businesses and GDPR compliance. - [Clerk Go SDK v2 (Beta)](https://clerk.com/changelog/2024-02-28): A beta release of our Golang SDK featuring improved API architecture and package structure - [Notice: SAML exiting Beta on Apr 01, 2024](https://clerk.com/changelog/2024-02-26): As of Apr 1, 2024, SAML Enterprise Connections will be exiting Beta and become Generally Available - [Support for 𝕏 / Twitter v2](https://clerk.com/changelog/2024-02-23): X (formerly Twitter) created a new version of their OAuth Provider and Clerk now supports it - [Improved organization billing visibility](https://clerk.com/changelog/2024-02-07): Efficiently track and manage their organization's expenses from a single location - [January 2024 Vulnerability Update](https://clerk.com/changelog/2024-02-02): Timeline of events for finding and fixing CVE-2024-22206 - [Critical security vulnerability in @clerk/nextjs](https://clerk.com/changelog/2024-01-12): Please upgrade immediately to 4.29.3 - [Improved UX for SAML authentication](https://clerk.com/changelog/2023-12-20): Enforce the usage of your IdP even when customer's initiate using SSO - [Custom Roles and Permissions is in Public Beta](https://clerk.com/changelog/2023-12-13): More control to operate your B2B SaaS via Custom Roles and Permissions - [Fetch users by latest activity](https://clerk.com/changelog/2023-12-07): Get a better understanding of your user's activity by using our updated Backend API endpoints which are now filterable by activity - [Simplified Pricing and updated Billing Dashboard](https://clerk.com/changelog/2023-12-06): Introducing a better pricing structure for all companies, and a better way to see your usage. - [Brute-force attack protection with Account Lockout](https://clerk.com/changelog/2023-12-01): Fight back against bots and protect your users from brute-force attacks with Account Lockout - [Use Clerk with Hono middleware](https://clerk.com/changelog/2023-11-08): Hono is a great minimal web framework for building applications across any edge runtime and now with Hono's middleware and our community SDK, you can secure it with Clerk. - [Add custom pages to and ](https://clerk.com/changelog/2023-10-26): Customize your user and organization profiles by adding custom pages and external links to the navigation sidebar. - [New changelog + much more](https://clerk.com/changelog/2023-10-20): Interested in checking out something new from the Clerk team? Well you're looking at it; our fancy new dedicated Changelog - [Prefill Sign Up & Sign In Components, Improved SAML Account Linking, and Stable Remix v2 Support](https://clerk.com/changelog/2023-09-29): This week, we released prefill support for the `` and `` components, improved SAML account linking, and shipped an update for Remix v2. - [Improved Account Portal, Expo Key Swapping, and More](https://clerk.com/changelog/2023-09-15): This week, we shipped an improved account portal, added support for swapping keys in Expo, and shipped several quality-of-life enhancements across the stack. - [Satellite Domains, Verified Organization Domains, and More](https://clerk.com/changelog/2023-09-01): This week, we shipped the ability to add satellite domains to your app and upgraded our org's product with auto-invite & auto-suggestions for admins. - [Changelog August 18, 2023](https://clerk.com/changelog/2023-08-18): This week we shipped a feature to block sign ups using email subaddressing, new email templates for magic links, and support for repo based config with Remix! - [Changelog August 4, 2023](https://clerk.com/changelog/2023-08-04): This week we shipped Disposable Email Blocking, Mitigation for Unvalidated Redirect Vulnerabilities, a new JWT template for WunderGraph, and more! - [Changelog July 21, 2023](https://clerk.com/changelog/2023-07-21): This week we shipped support for JWT shortcode interpolation, filtering and sorting for users, orgs & members, and a new UK +44 number for SMS OTP verification. - [Changelog July 7, 2023](https://clerk.com/changelog/2023-07-07): This week, we shipped enhanced bot detection for UI Components, improvements to search query performance, and infrastructure updates for increased stability. - [Changelog June 23, 2023](https://clerk.com/changelog/2023-06-23): This week, we released Self Service Delete, Organization Creation Permissions, Enhanced Bot Protection, and various security and performance enhancements. - [Changelog June 9, 2023](https://clerk.com/changelog/2023-06-09): This week, we shipped a public beta for SAML and several updates and improvements to localization, multidomain support, password imports, and more. - [Changelog May 26, 2023](https://clerk.com/changelog/2023-05-26): This week, we launched a major upgrade to avatars, enabled domain updates in the dashboard, improved backend sorting capabilities, password features, and more. - [Changelog April 21, 2023](https://clerk.com/changelog/2023-04-21): A new change password flow, bulk invites for organizations, hosted pages in the dashboard! - [Changelog April 7, 2023](https://clerk.com/changelog/2023-04-07): Expo 48 support, Improving our components, Runtime keys for Next.js... - [Changelog March 31, 2023](https://clerk.com/changelog/2023-03-31): Improved Web Vitals, Official Chrome Extension Support, OIDC Provider beta, Cross-Origin Embedder Policy Support - [Changelog March 24, 2023](https://clerk.com/changelog/2023-03-24): Series A announcement, improved email templates and dashboard improvements - [Changelog March 17, 2023](https://clerk.com/changelog/2023-03-17): You can find us at clerk.com, sign in with Linear, add scopes to users, beta docs updates - [Changelog March 3, 2023](https://clerk.com/changelog/2023-03-03): Organizations improvements, new Ruby SDK and Next.js route handler support - [Changelog Feb 24, 2023](https://clerk.com/changelog/2023-02-24): New docs, appearance and localization for Next.js App Router, Hydration improvements for remix, Spanish and German localization. - [Changelog Feb 10, 2023](https://clerk.com/changelog/2023-02-10): Introducing @clerk/fastify , Redwood v4 support, Next.js Middleware page protection and improvements to components. - [Changelog January 27, 2023](https://clerk.com/changelog/2023-01-27): Refactored API keys, Gatsby V5, Dynamic documentation, and migration support for Redwood self-hosted Auth. - [Changelog January 20, 2023](https://clerk.com/changelog/2023-01-20): Clerk has gone isomorphic, updated organization details page, and two deprecated packages - [Changelog December 23, 2022](https://clerk.com/changelog/2022-12-23): New backend API reference documentation, useAuth improvements and Italian language support - [Changelog December 16, 2022](https://clerk.com/changelog/2022-12-16): No more third-party cookies, pricing updates, and an educational youtube channel. - [Changelog December 9, 2022](https://clerk.com/changelog/2022-12-09): 6.2 million dollars in funding, Support for Cloudflare workers, Localization improvements, Invite your team to Clerk and new social logins - [Changelog November 18, 2022](https://clerk.com/changelog/2022-11-18): Next.js app updates, improvements in appearance, and localization in Org components. TRPC support - [Changelog November 11, 2022](https://clerk.com/changelog/2022-11-11): New components for B2B SaaS: CreateOrganization, OrganizationProfile, OrganizationSwitcher! See the demo at Modern Frontends Live - [Changelog October 21, 2022](https://clerk.com/changelog/2022-10-21): Add OAuth connections after Sign Up, revamped Next.js documentation, and a Product Hunt relaunch - [Changelog October 7, 2022](https://clerk.com/changelog/2022-10-07): Refreshed branding, improved Next.js authentication SDK, MFA backup codes, and Sign in with Coinbase - [Changelog September 30, 2022](https://clerk.com/changelog/2022-09-30): We launched safe and auditable User Impersonation! - [Changelog September 23, 2022](https://clerk.com/changelog/2022-09-23): Component localization, integrations with Grafbase, Convex, and Nhost, blocklist and bans - [Changelog August 5, 2022](https://clerk.com/changelog/2022-08-05): MFA w/ Authenticator apps, and introducing a new settings page, with some new options. - [Changelog July 22, 2022](https://clerk.com/changelog/2022-07-22): Customizable Session tokens, Clerk playground, and an updated Data Processing Agreement. - [Changelog July 15, 2022](https://clerk.com/changelog/2022-07-15): Redesigned components enter beta with improved default styles and vastly more customizability! Plus, we're migrating free plans and we upgraded our WAF. - [Changelog July 8, 2022](https://clerk.com/changelog/2022-07-08): Next.js 12.2, Emails with high deliverability, Sign in with Line, Odds and ends. - [Changelog July 1, 2022](https://clerk.com/changelog/2022-07-01): Organizations, "verify after sign up", and big email upgrades. - [Changelog June 10, 2022](https://clerk.com/changelog/2022-06-10): Side-by-side Web2 & Web3 auth, strict sign up requirements, brand new documentation, use-stripe-subscription, inaugural weekly office hours - [Changelog June 17, 2022](https://clerk.com/changelog/2022-06-17): Updated pricing, Organizations hooks, AppSync support - [Changelog June 3, 2022](https://clerk.com/changelog/2022-06-03): Embeddable Magic Links, E2E Testing, The New Wave Remix Stack. Updated pricing coming soon. - [Changelog May 27, 2022](https://clerk.com/changelog/2022-05-27): Discover the latest updates including our public roadmap launch, resilience enhancements, and advanced bot detection upgrades. - [Changelog May 20, 2022](https://clerk.com/changelog/2022-05-20): Announcing our roadmap as a Customer Identity Platform, managing over 250,000 users. Plus, a new homepage and improved documentation. - [Changelog May 13, 2022](https://clerk.com/changelog/2022-05-13): Continued organization management improvements, update domain in production, and a community spotlight on the Chop Suey Remix stack - [Changelog May 6, 2022](https://clerk.com/changelog/2022-05-06): SOC2 and HIPAA certifications, Organizations updates, Email deliverability, and test mode. - [Changelog Apr 29, 2022](https://clerk.com/changelog/2022-04-29): React 18 support, Remix & Fauna tutorial, email deliverability updates, organization deletion, and a community spotlight on Cypress testing! - [Changelog Apr 22, 2022](https://clerk.com/changelog/2022-04-22): Expo / React Native support, "slug" field for organizations, usernames in JWT templates, and a bucket o' Remix updates - [Changelog Apr 15, 2022](https://clerk.com/changelog/2022-04-15): This week we launched alpha support for authenticating Gatsby SSR, webhooks and metadata for Clerk-managed organizations, and improved observability. - [Changelog Apr 8, 2022](https://clerk.com/changelog/2022-04-08): OAuth after Sign Up, mergeable custom metadata, improved observability, and optional usernames - plus, try our Clerk x RedwoodJS authentication integration! - [Changelog Apr 1, 2022](https://clerk.com/changelog/2022-04-01): Instant Component previews, in-house docs, email deliverability improvements, plus Supabase Launch Week! - [Changelog Mar 25, 2022](https://clerk.com/changelog/2022-03-25): Bring-your-own IdP with Sign in Tokens, new allowlist for sign ups, Sign in with Apple, and a `user.organizations` shortcode for custom JWT templates. - [Changelog Mar 18, 2022](https://clerk.com/changelog/2022-03-18): Server-side JWTs for Supabase and custom integrations, Firebase Authentication password migrations, toggleable hosted components, and a community spotlight! - [Changelog Mar 11, 2022](https://clerk.com/changelog/2022-03-11): Try our new and improved Remix integration! Plus, we refactored our authentication settings, and moved JWT templates into general availability. - [Changelog Mar 4, 2022](https://clerk.com/changelog/2022-03-04): Organization management API, custom OAuth scopes, application/json support, Microsoft and Notion Social Login, FaunaDB JWT template, and more! - [Changelog Feb 25, 2022](https://clerk.com/changelog/2022-02-25): A new Redwood guide and Remix SDK. Plus, our Organization management features are coming *very* soon! - [Changelog Feb 18, 2022](https://clerk.com/changelog/2022-02-18): We launched our Remix SDK, a new Fauna integration, instant development instances, and quick links for customization! - [Changelog Feb 11, 2022](https://clerk.com/changelog/2022-02-11): Usernames from social logins, a suite of frontend-accessible database integrations, Dropbox and Bitbucket social logins, BCrypt and Django password migrations - [Changelog Feb 4, 2022](https://clerk.com/changelog/2022-02-04): Open source javascript, an improved Supabase integration, LinkedIn social login, metadata for invitations, and credit where credit is due! - [Changelog Jan 28, 2022](https://clerk.com/changelog/2022-01-28): SSR for Next.js, improved Hasura integration, custom JWT signing keys + a community-built Web3 guide - [Changelog Jan 21, 2022](https://clerk.com/changelog/2022-01-21): Open-source Javascript, Web3 authentication, easier onboarding, cross-origin auth docs, and the ultimate guide to Next.js auth - what a week! - [Changelog Jan 14, 2022](https://clerk.com/changelog/2022-01-14): Chore week! Email deliverability, NPM sourcemaps, and a new product page on one-time passcodes. - [Changelog Jan 7, 2022](https://clerk.com/changelog/2022-01-07): Beta for our Supabase integration (our most requested integration of Q4!), more about our security practices, and a new community contribution - [Very Merry Changelog, Dec 24, 2021](https://clerk.com/changelog/2021-12-24): We've launched custom JWTs for authentication, improved security for magic links, easier onboarding and productionizing, and a new homepage! Happy holidays! - [Changelog Dec 17, 2021](https://clerk.com/changelog/2021-12-17): Happy holidays, we're launching customizable email and SMS templates! - [Changelog Dec 10, 2021](https://clerk.com/changelog/2021-12-10): Our new dashboard has launched! Plus new `` and `` utilities - [Changelog Dec 3, 2021](https://clerk.com/changelog/2021-12-03): Clerk supports Expo, React Native, Invitations, new Allowlist options, and much more. Authentication for the modern Web, now natively supporting mobile. - [Changelog Nov 26, 2021](https://clerk.com/changelog/2021-11-26): Rolling sessions, beta for our new dashboard, and a simple CNAME change for new production applications - [Changelog Nov 19, 2021](https://clerk.com/changelog/2021-11-19): New magic link API and docs, DIY session token validation docs, Twitch SSO support, and a new information page on OAuth SSO - [Changelog Nov 12, 2021](https://clerk.com/changelog/2021-11-12): Magic links have launched! Plus Twitter social sign-in, a new guide on passwordless authentication, and a new starter with Fastify, React, and Prisma - [Changelog Nov 5, 2021](https://clerk.com/changelog/2021-11-05): Session management as-a-service, a more extensible ``, Discord and GitLab sign in, and a new guide on data-syncing - [Changelog Oct 29, 2021](https://clerk.com/changelog/2021-10-29): Next.js authentication at the edge and bug fixes for our upcoming magic link launch - [Changelog Oct 22, 2021](https://clerk.com/changelog/2021-10-22): Faster, faster, faster! Sub-millisecond auth in your backend, faster sign-in, and faster loading. Plus, community Ember.js and Next.js support. - [Changelog Oct 15, 2021](https://clerk.com/changelog/2021-10-15): Announcing Authentication v2 - from our first company retreat in Greece - [Changelog Oct 8, 2021](https://clerk.com/changelog/2021-10-08): Style with the `theme` prop, set a custom session duration, startup pricing, and beta for "magic links" - [Changelog Oct 1, 2021](https://clerk.com/changelog/2021-10-01): Price drop to 2¢ per MAU, a new guide to customization, a new Google Analytics integration, and a complete API reference. ## Documentation # Clerk ## Docs - [Welcome to Clerk Docs](https://clerk.com/docs/) - [Maintenance Mode](https://clerk.com/docs/maintenance-mode) - [Clerk Telemetry](https://clerk.com/docs/telemetry) - [Debug your webhooks](https://clerk.com/docs/webhooks/debug-your-webhooks) - [Handling webhooks with Inngest](https://clerk.com/docs/webhooks/inngest) - [Integrate Loops with Clerk](https://clerk.com/docs/webhooks/loops) - [Webhooks overview](https://clerk.com/docs/webhooks/overview) - [Sync Clerk data to your app with webhooks](https://clerk.com/docs/webhooks/sync-data) - [Available versions](https://clerk.com/docs/versioning/available-versions) - [Versioning overview](https://clerk.com/docs/versioning/overview) - [Create users](https://clerk.com/docs/users/creating-users) - [Delete users](https://clerk.com/docs/users/deleting-users) - [Invite users to your application](https://clerk.com/docs/users/invitations) - [User metadata](https://clerk.com/docs/users/metadata) - [Users](https://clerk.com/docs/users/overview) - [User impersonation](https://clerk.com/docs/users/user-impersonation) - [Long term support policy](https://clerk.com/docs/upgrade-guides/long-term-support) - [Upgrade from Clerk's Node SDK to the Express SDK](https://clerk.com/docs/upgrade-guides/node-to-express) - [Upgrade guides overview](https://clerk.com/docs/upgrade-guides/overview) - [Progressive Sign Up](https://clerk.com/docs/upgrade-guides/progressive-sign-up) - [How Clerk SDKs are versioned and released](https://clerk.com/docs/upgrade-guides/sdk-versioning) - [Upgrading from v2 to v3](https://clerk.com/docs/upgrade-guides/upgrading-from-v2-to-v3) - [URL-based session syncing](https://clerk.com/docs/upgrade-guides/url-based-session-syncing) - [Upgrade to @clerk/nextjs v6](https://clerk.com/docs/upgrade-guides/nextjs/v6) - [Upgrade to @clerk/clerk-expo v2](https://clerk.com/docs/upgrade-guides/expo/v2) - [Upgrading `@clerk/backend` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/backend) - [Upgrading `@clerk/chrome-extension` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/chrome-extension) - [Redesigned Components in Core 2](https://clerk.com/docs/upgrade-guides/core-2/component-redesign) - [Upgrading `@clerk/clerk-expo` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/expo) - [Upgrading `@clerk/fastify` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/fastify) - [Upgrading `@clerk/clerk-js` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/javascript) - [Upgrading `@clerk/nextjs` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/nextjs) - [Upgrading `@clerk/clerk-sdk-node` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/node) - [Upgrading to Clerk Core 2](https://clerk.com/docs/upgrade-guides/core-2/overview) - [Upgrading `@clerk/clerk-react` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/react) - [Upgrading `@clerk/remix` to Core 2](https://clerk.com/docs/upgrade-guides/core-2/remix) - [Create a minimal reproduction](https://clerk.com/docs/troubleshooting/create-a-minimal-reproduction) - [Email deliverability](https://clerk.com/docs/troubleshooting/email-deliverability) - [Troubleshooting](https://clerk.com/docs/troubleshooting/overview) - [Script loading](https://clerk.com/docs/troubleshooting/script-loading) - [Testing](https://clerk.com/docs/testing/overview) - [Testing with Postman or Insomnia](https://clerk.com/docs/testing/postman-or-insomnia) - [Test emails and phones](https://clerk.com/docs/testing/test-emails-and-phones) - [Testing with Playwright](https://clerk.com/docs/testing/playwright/overview) - [Test authenticated flows](https://clerk.com/docs/testing/playwright/test-authenticated-flows) - [Test helpers](https://clerk.com/docs/testing/playwright/test-helpers) - [Custom commands](https://clerk.com/docs/testing/cypress/custom-commands) - [Testing with Cypress](https://clerk.com/docs/testing/cypress/overview) - [Test Account Portal flows](https://clerk.com/docs/testing/cypress/test-account-portal) - [Bot protection](https://clerk.com/docs/security/bot-protection) - [Configure Clerk Content-Security-Policy headers](https://clerk.com/docs/security/clerk-csp) - [CSRF protection](https://clerk.com/docs/security/csrf-protection) - [Protect email link sign-ins and sign-ups](https://clerk.com/docs/security/email-link-protection) - [Fixation protection](https://clerk.com/docs/security/fixation-protection) - [Security](https://clerk.com/docs/security/overview) - [Password protection and rules](https://clerk.com/docs/security/password-protection) - [Unauthorized sign-in](https://clerk.com/docs/security/unauthorized-sign-in) - [Brute force attacks and locking user accounts](https://clerk.com/docs/security/user-lock-guide) - [Vulnerability disclosure policy](https://clerk.com/docs/security/vulnerability-disclosure-policy) - [XSS leak protection](https://clerk.com/docs/security/xss-leak-protection) - [SDK References](https://clerk.com/docs/references/overview) - [`clerkPlugin`](https://clerk.com/docs/references/vue/clerk-plugin) - [Migrating from the Vue community SDK](https://clerk.com/docs/references/vue/migrating-from-vue-community-sdk) - [Clerk Vue SDK](https://clerk.com/docs/references/vue/overview) - [`updateClerkOptions()`](https://clerk.com/docs/references/vue/update-clerk-options) - [useAuth() | Vue](https://clerk.com/docs/references/vue/use-auth) - [useClerk() | Vue](https://clerk.com/docs/references/vue/use-clerk) - [useOrganization() | Vue](https://clerk.com/docs/references/vue/use-organization) - [useSessionList() | Vue](https://clerk.com/docs/references/vue/use-session-list) - [useSession() | Vue](https://clerk.com/docs/references/vue/use-session) - [useSignIn() | Vue](https://clerk.com/docs/references/vue/use-sign-in) - [useSignUp() | Vue](https://clerk.com/docs/references/vue/use-sign-up) - [useUser() | Vue](https://clerk.com/docs/references/vue/use-user) - [`createClerkHandler()`](https://clerk.com/docs/references/tanstack-react-start/create-clerk-handler) - [Build your own sign-in-or-up page for your TanStack React Start app with Clerk](https://clerk.com/docs/references/tanstack-react-start/custom-sign-in-or-up-page) - [Build your own sign-up page for your TanStack React Start app with Clerk](https://clerk.com/docs/references/tanstack-react-start/custom-sign-up-page) - [`getAuth()`](https://clerk.com/docs/references/tanstack-react-start/get-auth) - [Clerk TanStack React Start SDK](https://clerk.com/docs/references/tanstack-react-start/overview) - [Read session and user data in your TanStack React Start app with Clerk](https://clerk.com/docs/references/tanstack-react-start/read-session-data) - [Verify OAuth access tokens in your TanStack React Start application with Clerk](https://clerk.com/docs/references/tanstack-react-start/verifying-oauth-access-tokens) - [Backend-only SDK](https://clerk.com/docs/references/sdk/backend-only) - [Conventions](https://clerk.com/docs/references/sdk/conventions) - [Frontend-only SDK](https://clerk.com/docs/references/sdk/frontend-only) - [Fullstack SDK](https://clerk.com/docs/references/sdk/fullstack) - [SDK development](https://clerk.com/docs/references/sdk/overview) - [Philosophy](https://clerk.com/docs/references/sdk/philosophy) - [Terminology](https://clerk.com/docs/references/sdk/terminology) - [SDK types](https://clerk.com/docs/references/sdk/types) - [Clerk Ruby SDK](https://clerk.com/docs/references/ruby/overview) - [Ruby with Rack](https://clerk.com/docs/references/ruby/rack) - [Ruby on Rails integration](https://clerk.com/docs/references/ruby/rails) - [Sinatra integration](https://clerk.com/docs/references/ruby/sinatra) - [Upgrade to `clerk-sdk-ruby` v4](https://clerk.com/docs/references/ruby/v4-upgrade-guide) - [`ClerkApp`](https://clerk.com/docs/references/remix/clerk-app) - [Build your own sign-in-or-up page for your Remix app with Clerk](https://clerk.com/docs/references/remix/custom-sign-in-or-up-page) - [Build your own sign-up page for your Remix app with Clerk](https://clerk.com/docs/references/remix/custom-sign-up-page) - [Clerk Remix SDK](https://clerk.com/docs/references/remix/overview) - [Read session and user data in your Remix app with Clerk](https://clerk.com/docs/references/remix/read-session-data) - [`rootAuthLoader()`](https://clerk.com/docs/references/remix/root-auth-loader) - [Remix SPA Mode](https://clerk.com/docs/references/remix/spa-mode) - [Build your own sign-in-or-up page for your React Router app with Clerk](https://clerk.com/docs/references/react-router/custom-sign-in-or-up-page) - [Build your own sign-up page for your React Router app with Clerk](https://clerk.com/docs/references/react-router/custom-sign-up-page) - [`getAuth()`](https://clerk.com/docs/references/react-router/get-auth) - [React Router library mode](https://clerk.com/docs/references/react-router/library-mode) - [Clerk React Router SDK](https://clerk.com/docs/references/react-router/overview) - [Read session and user data in your React Router app with Clerk](https://clerk.com/docs/references/react-router/read-session-data) - [`rootAuthLoader()`](https://clerk.com/docs/references/react-router/root-auth-loader) - [Verify OAuth access tokens in your React Router application with Clerk](https://clerk.com/docs/references/react-router/verifying-oauth-access-tokens) - [Clerk React SDK](https://clerk.com/docs/references/react/overview) - [clerkMiddleware() | Nuxt](https://clerk.com/docs/references/nuxt/clerk-middleware) - [Clerk Nuxt SDK](https://clerk.com/docs/references/nuxt/overview) - [Protect pages in your Nuxt app with Clerk](https://clerk.com/docs/references/nuxt/protect-pages) - [Read session and user data in your Nuxt app with Clerk](https://clerk.com/docs/references/nuxt/read-session-data) - [Add custom onboarding to your authentication flow](https://clerk.com/docs/references/nextjs/add-onboarding-flow) - [`auth()`](https://clerk.com/docs/references/nextjs/auth) - [Migrate from Auth.js to Clerk](https://clerk.com/docs/references/nextjs/authjs-migration) - [Implement basic Role Based Access Control (RBAC) with metadata](https://clerk.com/docs/references/nextjs/basic-rbac) - [`buildClerkProps`](https://clerk.com/docs/references/nextjs/build-clerk-props) - [Build an MCP server in your Next.js application with Clerk](https://clerk.com/docs/references/nextjs/build-mcp-server) - [clerkMiddleware() | Next.js](https://clerk.com/docs/references/nextjs/clerk-middleware) - [Connect MCP-compatible clients to your MCP server built with Next.js](https://clerk.com/docs/references/nextjs/connect-mcp-client) - [`currentUser()`](https://clerk.com/docs/references/nextjs/current-user) - [Build your own sign-in-or-up page for your Next.js app with Clerk](https://clerk.com/docs/references/nextjs/custom-sign-in-or-up-page) - [Build your own sign-up page for your Next.js app with Clerk](https://clerk.com/docs/references/nextjs/custom-sign-up-page) - [Basic geo blocking](https://clerk.com/docs/references/nextjs/geo-blocking) - [`getAuth()`](https://clerk.com/docs/references/nextjs/get-auth) - [Clerk Next.js SDK](https://clerk.com/docs/references/nextjs/overview) - [Read session and user data in your Next.js app with Clerk](https://clerk.com/docs/references/nextjs/read-session-data) - [Next.js rendering modes and Clerk](https://clerk.com/docs/references/nextjs/rendering-modes) - [Route Handlers](https://clerk.com/docs/references/nextjs/route-handlers) - [Server Actions](https://clerk.com/docs/references/nextjs/server-actions) - [Integrate Clerk into your Next.js + tRPC app](https://clerk.com/docs/references/nextjs/trpc) - [Use Clerk with Next.js 12 and older](https://clerk.com/docs/references/nextjs/usage-with-older-versions) - [Verify OAuth access tokens in your Next.js application with Clerk](https://clerk.com/docs/references/nextjs/verifying-oauth-access-tokens) - [Set up a waitlist in your Next.js app](https://clerk.com/docs/references/nextjs/waitlist) - [Clerk: auth() was called but Clerk can't detect usage of clerkMiddleware()](https://clerk.com/docs/references/nextjs/errors/auth-was-called) - [`Clerk` class](https://clerk.com/docs/references/javascript/clerk) - [`Client`](https://clerk.com/docs/references/javascript/client) - [`Organization` object](https://clerk.com/docs/references/javascript/organization) - [Clerk JavaScript SDK](https://clerk.com/docs/references/javascript/overview) - [Session](https://clerk.com/docs/references/javascript/session) - [`SignIn`](https://clerk.com/docs/references/javascript/sign-in) - [`SignUp`](https://clerk.com/docs/references/javascript/sign-up) - [`User` object](https://clerk.com/docs/references/javascript/user) - [`BackupCodeResource`](https://clerk.com/docs/references/javascript/types/backup-code) - [`ClerkAPIError`](https://clerk.com/docs/references/javascript/types/clerk-api-error) - [`ClerkPaginatedResponse`](https://clerk.com/docs/references/javascript/types/clerk-paginated-response) - [`CustomMenuItem`](https://clerk.com/docs/references/javascript/types/custom-menu-item) - [`CustomPage`](https://clerk.com/docs/references/javascript/types/custom-page) - [`DeletedObject`](https://clerk.com/docs/references/javascript/types/deleted-object) - [`EmailAddress`](https://clerk.com/docs/references/javascript/types/email-address) - [`EmailLinkError`](https://clerk.com/docs/references/javascript/types/email-link-error) - [`EnterpriseAccountConnection`](https://clerk.com/docs/references/javascript/types/enterprise-account-connection) - [`EnterpriseAccount`](https://clerk.com/docs/references/javascript/types/enterprise-account) - [`ExternalAccount`](https://clerk.com/docs/references/javascript/types/external-account) - [Metadata](https://clerk.com/docs/references/javascript/types/metadata) - [`OrganizationCustomPermissionKey`](https://clerk.com/docs/references/javascript/types/organization-custom-permission-key) - [`OrganizationCustomRoleKey`](https://clerk.com/docs/references/javascript/types/organization-custom-role-key) - [`OrganizationDomain`](https://clerk.com/docs/references/javascript/types/organization-domain) - [`OrganizationInvitation`](https://clerk.com/docs/references/javascript/types/organization-invitation) - [`OrganizationMembershipRequest`](https://clerk.com/docs/references/javascript/types/organization-membership-request) - [`OrganizationMembership`](https://clerk.com/docs/references/javascript/types/organization-membership) - [OrganizationSuggestion](https://clerk.com/docs/references/javascript/types/organization-suggestion) - [Clerk types](https://clerk.com/docs/references/javascript/types/overview) - [`PasskeyResource`](https://clerk.com/docs/references/javascript/types/passkey-resource) - [`PermissionResource`](https://clerk.com/docs/references/javascript/types/permission) - [`PhoneNumber`](https://clerk.com/docs/references/javascript/types/phone-number) - [`PublicUserData`](https://clerk.com/docs/references/javascript/types/public-user-data) - [`RedirectOptions`](https://clerk.com/docs/references/javascript/types/redirect-options) - [`RoleResource`](https://clerk.com/docs/references/javascript/types/role) - [`SamlAccountConnection`](https://clerk.com/docs/references/javascript/types/saml-account-connection) - [`SamlAccount`](https://clerk.com/docs/references/javascript/types/saml-account) - [`SessionStatus`](https://clerk.com/docs/references/javascript/types/session-status) - [SessionVerification](https://clerk.com/docs/references/javascript/types/session-verification) - [`SessionWithActivities`](https://clerk.com/docs/references/javascript/types/session-with-activities) - [`SetActiveParams`](https://clerk.com/docs/references/javascript/types/set-active-params) - [`SignInFirstFactor`](https://clerk.com/docs/references/javascript/types/sign-in-first-factor) - [`SignInInitialValues`](https://clerk.com/docs/references/javascript/types/sign-in-initial-values) - [`SignInRedirectOptions`](https://clerk.com/docs/references/javascript/types/sign-in-redirect-options) - [`SignInSecondFactor`](https://clerk.com/docs/references/javascript/types/sign-in-second-factor) - [`SignUpInitialValues`](https://clerk.com/docs/references/javascript/types/sign-up-initial-values) - [`SignUpRedirectOptions`](https://clerk.com/docs/references/javascript/types/sign-up-redirect-options) - [SSO Types](https://clerk.com/docs/references/javascript/types/sso) - [`TOTPResource`](https://clerk.com/docs/references/javascript/types/totp) - [UserOrganizationInvitation](https://clerk.com/docs/references/javascript/types/user-organization-invitation) - [`Verification`](https://clerk.com/docs/references/javascript/types/verification) - [Web3Wallet](https://clerk.com/docs/references/javascript/types/web3-wallet) - [`getToken()`](https://clerk.com/docs/references/ios/get-token) - [Clerk iOS SDK](https://clerk.com/docs/references/ios/overview) - [Sign in with Apple](https://clerk.com/docs/references/ios/sign-in-with-apple) - [Use Clerk Go for Backend API Operations](https://clerk.com/docs/references/go/other-examples) - [Clerk Go SDK](https://clerk.com/docs/references/go/overview) - [Verify a Clerk session in Go](https://clerk.com/docs/references/go/verifying-sessions) - [Clerk Fastify SDK](https://clerk.com/docs/references/fastify/overview) - [Clerk Express SDK](https://clerk.com/docs/references/express/overview) - [Access the Clerk object outside of components](https://clerk.com/docs/references/expo/access-clerk-outside-components) - [Enable biometric sign-in for returning users in Expo](https://clerk.com/docs/references/expo/local-credentials) - [Enable offline support in your Expo app](https://clerk.com/docs/references/expo/offline-support) - [Clerk Expo SDK](https://clerk.com/docs/references/expo/overview) - [Configure passkeys for Expo](https://clerk.com/docs/references/expo/passkeys) - [Read session and user data with Expo](https://clerk.com/docs/references/expo/read-session-user-data) - [`useLocalCredentials()`](https://clerk.com/docs/references/expo/use-local-credentials) - [useOAuth() (deprecated)](https://clerk.com/docs/references/expo/use-oauth) - [useSSO()](https://clerk.com/docs/references/expo/use-sso) - [Build your own sign-in-or-up page for your Expo web app](https://clerk.com/docs/references/expo/web-support/custom-sign-in-or-up-page) - [Build your own sign-up page with prebuilt components on web](https://clerk.com/docs/references/expo/web-support/custom-sign-up-page) - [Web support](https://clerk.com/docs/references/expo/web-support/overview) - [Community SDK References](https://clerk.com/docs/references/community-sdk/overview) - [Add React Router to your Clerk-powered Chrome Extension](https://clerk.com/docs/references/chrome-extension/add-react-router) - [Configure a consistent CRX ID for your Chrome Extension](https://clerk.com/docs/references/chrome-extension/configure-consistent-crx-id) - [`createClerkClient()`](https://clerk.com/docs/references/chrome-extension/create-clerk-client) - [Clerk Chrome Extension SDK](https://clerk.com/docs/references/chrome-extension/overview) - [Sync auth status between your Chrome Extension and web app](https://clerk.com/docs/references/chrome-extension/sync-host) - [`authenticateRequest()`](https://clerk.com/docs/references/backend/authenticate-request) - [JavaScript Backend SDK](https://clerk.com/docs/references/backend/overview) - [`verifyToken()`](https://clerk.com/docs/references/backend/verify-token) - [`verifyWebhook()`](https://clerk.com/docs/references/backend/verify-webhook) - [`banUser()`](https://clerk.com/docs/references/backend/user/ban-user) - [`createUser()`](https://clerk.com/docs/references/backend/user/create-user) - [`deleteUserProfileImage()`](https://clerk.com/docs/references/backend/user/delete-user-profile-image) - [`deleteUser()`](https://clerk.com/docs/references/backend/user/delete-user) - [`disableUserMFA()`](https://clerk.com/docs/references/backend/user/disable-user-mfa) - [`getCount()`](https://clerk.com/docs/references/backend/user/get-count) - [getOrganizationMembershipList()](https://clerk.com/docs/references/backend/user/get-organization-membership-list) - [`getUserList()`](https://clerk.com/docs/references/backend/user/get-user-list) - [getUserOauthAccessToken()](https://clerk.com/docs/references/backend/user/get-user-oauth-access-token) - [`getUser()`](https://clerk.com/docs/references/backend/user/get-user) - [`lockUser()`](https://clerk.com/docs/references/backend/user/lock-user) - [`unbanUser()`](https://clerk.com/docs/references/backend/user/unban-user) - [`unlockUser()`](https://clerk.com/docs/references/backend/user/unlock-user) - [`updateUserMetadata()`](https://clerk.com/docs/references/backend/user/update-user-metadata) - [`updateUserProfileImage()`](https://clerk.com/docs/references/backend/user/update-user-profile-image) - [`updateUser()`](https://clerk.com/docs/references/backend/user/update-user) - [`verifyPassword()`](https://clerk.com/docs/references/backend/user/verify-password) - [`verifyTOTP()`](https://clerk.com/docs/references/backend/user/verify-totp) - [Auth object](https://clerk.com/docs/references/backend/types/auth-object) - [The Backend `AllowlistIdentifier` object](https://clerk.com/docs/references/backend/types/backend-allowlist-identifier) - [The Backend `Client` object](https://clerk.com/docs/references/backend/types/backend-client) - [The Backend `EmailAddress` object](https://clerk.com/docs/references/backend/types/backend-email-address) - [The Backend `ExternalAccount` object](https://clerk.com/docs/references/backend/types/backend-external-account) - [The Backend `IdentificationLink` object](https://clerk.com/docs/references/backend/types/backend-identification-link) - [The Backend `Invitation` object](https://clerk.com/docs/references/backend/types/backend-invitation) - [The Backend `OrganizationInvitation` object](https://clerk.com/docs/references/backend/types/backend-organization-invitation) - [The Backend `OrganizationMembership` object](https://clerk.com/docs/references/backend/types/backend-organization-membership) - [The Backend `Organization` object](https://clerk.com/docs/references/backend/types/backend-organization) - [The Backend `PhoneNumber` object](https://clerk.com/docs/references/backend/types/backend-phone-number) - [The Backend `RedirectUrl` object](https://clerk.com/docs/references/backend/types/backend-redirect-url) - [The Backend `SamlAccount` object](https://clerk.com/docs/references/backend/types/backend-saml-account) - [The Backend `SamlConnection` object](https://clerk.com/docs/references/backend/types/backend-saml-connection) - [The Backend `SessionActivity` object](https://clerk.com/docs/references/backend/types/backend-session-activity) - [The Backend `Session` object](https://clerk.com/docs/references/backend/types/backend-session) - [The Backend `User` object](https://clerk.com/docs/references/backend/types/backend-user) - [The Backend `Verification` object](https://clerk.com/docs/references/backend/types/backend-verification) - [The Backend `Web3Wallet` object](https://clerk.com/docs/references/backend/types/backend-web3-wallet) - [`PaginatedResourceResponse`](https://clerk.com/docs/references/backend/types/paginated-resource-response) - [`createTestingToken()`](https://clerk.com/docs/references/backend/testing-tokens/create-testing-token) - [`createSignInToken()`](https://clerk.com/docs/references/backend/sign-in-tokens/create-sign-in-token) - [`revokeSignInToken()`](https://clerk.com/docs/references/backend/sign-in-tokens/revoke-sign-in-token) - [`getSessionList()`](https://clerk.com/docs/references/backend/sessions/get-session-list) - [`getSession()`](https://clerk.com/docs/references/backend/sessions/get-session) - [`getToken()`](https://clerk.com/docs/references/backend/sessions/get-token) - [`revokeSession()`](https://clerk.com/docs/references/backend/sessions/revoke-session) - [`verifySession()` (deprecated)](https://clerk.com/docs/references/backend/sessions/verify-session) - [`createSamlConnection()`](https://clerk.com/docs/references/backend/saml-connections/create-saml-connection) - [`deleteSamlConnection()`](https://clerk.com/docs/references/backend/saml-connections/delete-saml-connection) - [`getSamlConnectionList()`](https://clerk.com/docs/references/backend/saml-connections/get-saml-connection-list) - [`getSamlConnection()`](https://clerk.com/docs/references/backend/saml-connections/get-saml-connection) - [`updateSamlConnection()`](https://clerk.com/docs/references/backend/saml-connections/update-saml-connection) - [`createRedirectUrl()`](https://clerk.com/docs/references/backend/redirect-urls/create-redirect-url) - [`deleteRedirectUrl()`](https://clerk.com/docs/references/backend/redirect-urls/delete-redirect-url) - [`getRedirectUrlList()`](https://clerk.com/docs/references/backend/redirect-urls/get-redirect-url-list) - [`getRedirectUrl()`](https://clerk.com/docs/references/backend/redirect-urls/get-redirect-url) - [`createPhoneNumber()`](https://clerk.com/docs/references/backend/phone-numbers/create-phone-number) - [`deletePhoneNumber()`](https://clerk.com/docs/references/backend/phone-numbers/delete-phone-number) - [`getPhoneNumber()`](https://clerk.com/docs/references/backend/phone-numbers/get-phone-number) - [`updatePhoneNumber()`](https://clerk.com/docs/references/backend/phone-numbers/update-phone-number) - [`createOrganizationInvitationBulk()`](https://clerk.com/docs/references/backend/organization/create-organization-invitation-bulk) - [`createOrganizationInvitation()`](https://clerk.com/docs/references/backend/organization/create-organization-invitation) - [`createOrganizationMembership()`](https://clerk.com/docs/references/backend/organization/create-organization-membership) - [`createOrganization()`](https://clerk.com/docs/references/backend/organization/create-organization) - [`deleteOrganizationLogo()`](https://clerk.com/docs/references/backend/organization/delete-organization-logo) - [`deleteOrganizationMembership()`](https://clerk.com/docs/references/backend/organization/delete-organization-membership) - [`deleteOrganization()`](https://clerk.com/docs/references/backend/organization/delete-organization) - [`getOrganizationInvitationList()`](https://clerk.com/docs/references/backend/organization/get-organization-invitation-list) - [`getOrganizationInvitation()`](https://clerk.com/docs/references/backend/organization/get-organization-invitation) - [`getOrganizationList()`](https://clerk.com/docs/references/backend/organization/get-organization-list) - [`getOrganizationMembershipList()`](https://clerk.com/docs/references/backend/organization/get-organization-membership-list) - [`getOrganization()`](https://clerk.com/docs/references/backend/organization/get-organization) - [`revokeOrganizationInvitation()`](https://clerk.com/docs/references/backend/organization/revoke-organization-invitation) - [`updateOrganizationLogo()`](https://clerk.com/docs/references/backend/organization/update-organization-logo) - [`updateOrganizationMembershipMetadata()`](https://clerk.com/docs/references/backend/organization/update-organization-membership-metadata) - [`updateOrganizationMembership()`](https://clerk.com/docs/references/backend/organization/update-organization-membership) - [`updateOrganizationMetadata()`](https://clerk.com/docs/references/backend/organization/update-organization-metadata) - [`updateOrganization()`](https://clerk.com/docs/references/backend/organization/update-organization) - [`createInvitation()`](https://clerk.com/docs/references/backend/invitations/create-invitation) - [`getInvitationList()`](https://clerk.com/docs/references/backend/invitations/get-invitation-list) - [`revokeInvitation()`](https://clerk.com/docs/references/backend/invitations/revoke-invitation) - [`createEmailAddress()`](https://clerk.com/docs/references/backend/email-addresses/create-email-address) - [`deleteEmailAddress()`](https://clerk.com/docs/references/backend/email-addresses/delete-email-address) - [`getEmailAddress()`](https://clerk.com/docs/references/backend/email-addresses/get-email-address) - [`updateEmailAddress()`](https://clerk.com/docs/references/backend/email-addresses/update-email-address) - [`deleteDomain()`](https://clerk.com/docs/references/backend/domains/delete-domain) - [`getClientList()` (deprecated)](https://clerk.com/docs/references/backend/client/get-client-list) - [`getClient()`](https://clerk.com/docs/references/backend/client/get-client) - [`verifyClient()`](https://clerk.com/docs/references/backend/client/verify-client) - [`createAllowlistIdentifier()`](https://clerk.com/docs/references/backend/allowlist/create-allowlist-identifier) - [`deleteAllowlistIdentifier()`](https://clerk.com/docs/references/backend/allowlist/delete-allowlist-identifier) - [`getAllowlistIdentifierList()`](https://clerk.com/docs/references/backend/allowlist/get-allowlist-identifier-list) - [`$authStore`](https://clerk.com/docs/references/astro/auth-store) - [`clerkMiddleware()` | Astro](https://clerk.com/docs/references/astro/clerk-middleware) - [`$clerkStore`](https://clerk.com/docs/references/astro/clerk-store) - [Endpoints](https://clerk.com/docs/references/astro/endpoints) - [Astro hybrid rendering](https://clerk.com/docs/references/astro/hybrid-rendering) - [Integration](https://clerk.com/docs/references/astro/integration) - [Locals](https://clerk.com/docs/references/astro/locals) - [Migrating from the Astro community SDK](https://clerk.com/docs/references/astro/migrating-from-astro-community-sdk) - [`$organizationStore`](https://clerk.com/docs/references/astro/organization-store) - [Clerk Astro SDK](https://clerk.com/docs/references/astro/overview) - [Use Clerk with Astro and React](https://clerk.com/docs/references/astro/react) - [Read session and user data in your Astro app with Clerk](https://clerk.com/docs/references/astro/read-session-data) - [`$sessionListStore`](https://clerk.com/docs/references/astro/session-list-store) - [`$sessionStore`](https://clerk.com/docs/references/astro/session-store) - [`$signInStore`](https://clerk.com/docs/references/astro/sign-in-store) - [`$signUpStore`](https://clerk.com/docs/references/astro/sign-up-store) - [`updateClerkOptions()`](https://clerk.com/docs/references/astro/update-clerk-options) - [`$userStore`](https://clerk.com/docs/references/astro/user-store) - [Astro Quickstart](https://clerk.com/docs/quickstarts/astro) - [Chrome Extension Quickstart](https://clerk.com/docs/quickstarts/chrome-extension) - [Expo Quickstart](https://clerk.com/docs/quickstarts/expo) - [Express Quickstart](https://clerk.com/docs/quickstarts/express) - [Fastify Quickstart](https://clerk.com/docs/quickstarts/fastify) - [iOS Quickstart](https://clerk.com/docs/quickstarts/ios) - [JavaScript Quickstart](https://clerk.com/docs/quickstarts/javascript) - [Next.js Quickstart (Pages Router)](https://clerk.com/docs/quickstarts/nextjs-pages-router) - [Next.js Quickstart (App Router)](https://clerk.com/docs/quickstarts/nextjs) - [Nuxt Quickstart](https://clerk.com/docs/quickstarts/nuxt) - [Quickstarts](https://clerk.com/docs/quickstarts/overview) - [React Router Quickstart](https://clerk.com/docs/quickstarts/react-router) - [React Quickstart](https://clerk.com/docs/quickstarts/react) - [Remix Quickstart](https://clerk.com/docs/quickstarts/remix) - [Ruby Quickstart](https://clerk.com/docs/quickstarts/ruby) - [Set up your Clerk account](https://clerk.com/docs/quickstarts/setup-clerk) - [TanStack React Start Quickstart (beta)](https://clerk.com/docs/quickstarts/tanstack-react-start) - [Vue Quickstart](https://clerk.com/docs/quickstarts/vue) - [Create organizations on behalf of users](https://clerk.com/docs/organizations/create-orgs-for-users) - [Hide personal accounts and force organizations](https://clerk.com/docs/organizations/force-organizations) - [Invite users to your organization](https://clerk.com/docs/organizations/invitations) - [Organization-level enterprise SSO](https://clerk.com/docs/organizations/manage-sso) - [Organization metadata](https://clerk.com/docs/organizations/metadata) - [Use organization slugs in URLs](https://clerk.com/docs/organizations/org-slugs-in-urls) - [Organization workspaces in the Clerk Dashboard](https://clerk.com/docs/organizations/organization-workspaces) - [Organizations](https://clerk.com/docs/organizations/overview) - [Roles and permissions](https://clerk.com/docs/organizations/roles-permissions) - [Verified domains](https://clerk.com/docs/organizations/verified-domains) - [How Clerk implements OAuth](https://clerk.com/docs/oauth/how-clerk-implements-oauth) - [OAuth and OIDC overview](https://clerk.com/docs/oauth/overview) - [Use OAuth for scoped access](https://clerk.com/docs/oauth/scoped-access) - [Use OAuth for Single Sign-On (SSO)](https://clerk.com/docs/oauth/single-sign-on) - [Verify OAuth tokens with Clerk](https://clerk.com/docs/oauth/verify-oauth-tokens) - [Integrations](https://clerk.com/docs/integrations/overview) - [Integrate Shopify with Clerk](https://clerk.com/docs/integrations/shopify) - [Integrate Clerk through the Vercel Marketplace](https://clerk.com/docs/integrations/vercel-marketplace) - [Integrate Convex with Clerk](https://clerk.com/docs/integrations/databases/convex) - [Integrate Fauna with Clerk](https://clerk.com/docs/integrations/databases/fauna) - [Integrate Firebase with Clerk](https://clerk.com/docs/integrations/databases/firebase) - [Integrate Grafbase with Clerk](https://clerk.com/docs/integrations/databases/grafbase) - [Integrate Hasura with Clerk](https://clerk.com/docs/integrations/databases/hasura) - [Integrate InstantDB with Clerk](https://clerk.com/docs/integrations/databases/instantdb) - [Integrate Neon Postgres with Clerk](https://clerk.com/docs/integrations/databases/neon) - [Integrate Nhost with Clerk](https://clerk.com/docs/integrations/databases/nhost) - [Integrate Supabase with Clerk](https://clerk.com/docs/integrations/databases/supabase) - [Enable Google Analytics for Clerk](https://clerk.com/docs/integrations/analytics/google-analytics) - [Clerk Cookies](https://clerk.com/docs/how-clerk-works/cookies) - [How Clerk works](https://clerk.com/docs/how-clerk-works/overview) - [useAuth()](https://clerk.com/docs/hooks/use-auth) - [useClerk()](https://clerk.com/docs/hooks/use-clerk) - [`useOrganizationList()`](https://clerk.com/docs/hooks/use-organization-list) - [useOrganization()](https://clerk.com/docs/hooks/use-organization) - [useReverification()](https://clerk.com/docs/hooks/use-reverification) - [useSessionList()](https://clerk.com/docs/hooks/use-session-list) - [useSession()](https://clerk.com/docs/hooks/use-session) - [useSignIn()](https://clerk.com/docs/hooks/use-sign-in) - [useSignUp()](https://clerk.com/docs/hooks/use-sign-up) - [useUser()](https://clerk.com/docs/hooks/use-user) - [Authorize users](https://clerk.com/docs/guides/authorization-checks) - [Customize your redirect URLs](https://clerk.com/docs/guides/custom-redirects) - [Override Clerk interfaces with custom types](https://clerk.com/docs/guides/custom-types) - [Use image optimization to improve app performance](https://clerk.com/docs/guides/image-optimization) - [Multi-tenant architecture](https://clerk.com/docs/guides/multi-tenant-architecture) - [Clerk guides](https://clerk.com/docs/guides/overview) - [Add reverification for sensitive actions](https://clerk.com/docs/guides/reverification) - [Routing in Clerk](https://clerk.com/docs/guides/routing) - [Backend API errors](https://clerk.com/docs/errors/backend-api) - [Frontend API errors](https://clerk.com/docs/errors/frontend-api) - [Errors overview](https://clerk.com/docs/errors/overview) - [Change domain or subdomain](https://clerk.com/docs/deployments/changing-domains) - [Clerk environment variables](https://clerk.com/docs/deployments/clerk-environment-variables) - [Deploy an Astro app to production](https://clerk.com/docs/deployments/deploy-astro) - [Deploy a Clerk app behind a proxy](https://clerk.com/docs/deployments/deploy-behind-a-proxy) - [Deploy a Chrome Extension to production](https://clerk.com/docs/deployments/deploy-chrome-extension) - [Deploy an Expo app to production](https://clerk.com/docs/deployments/deploy-expo) - [Deploying a Clerk app to Vercel](https://clerk.com/docs/deployments/deploy-to-vercel) - [Instances / Environments](https://clerk.com/docs/deployments/environments) - [Export your user's data from Clerk](https://clerk.com/docs/deployments/exporting-users) - [Migrate from Cognito](https://clerk.com/docs/deployments/migrate-from-cognito) - [Migrate from Firebase](https://clerk.com/docs/deployments/migrate-from-firebase) - [Migrate to Clerk from another platform](https://clerk.com/docs/deployments/migrate-overview) - [Deploy your Clerk app to production](https://clerk.com/docs/deployments/overview) - [Set up a preview environment with Clerk](https://clerk.com/docs/deployments/set-up-preview-environment) - [Set up a staging environment with Clerk](https://clerk.com/docs/deployments/set-up-staging) - [Staging alternatives](https://clerk.com/docs/deployments/staging-alternatives) - [`captcha` prop](https://clerk.com/docs/customization/captcha) - [`Layout` prop](https://clerk.com/docs/customization/layout) - [Localization prop (experimental)](https://clerk.com/docs/customization/localization) - [Add custom pages and links to the `` component](https://clerk.com/docs/customization/organization-profile) - [`Appearance` prop](https://clerk.com/docs/customization/overview) - [Themes](https://clerk.com/docs/customization/themes) - [Add custom items and links to the `` component](https://clerk.com/docs/customization/user-button) - [Add custom pages and links to the `` component](https://clerk.com/docs/customization/user-profile) - [`Variables` prop](https://clerk.com/docs/customization/variables) - [Clerk Elements (beta)](https://clerk.com/docs/customization/elements/overview) - [Common components](https://clerk.com/docs/customization/elements/reference/common) - [Sign-in components](https://clerk.com/docs/customization/elements/reference/sign-in) - [Sign-up components](https://clerk.com/docs/customization/elements/reference/sign-up) - [Build a sign-in flow with Clerk Elements](https://clerk.com/docs/customization/elements/guides/sign-in) - [Build a sign-up flow with Clerk Elements](https://clerk.com/docs/customization/elements/guides/sign-up) - [Styling for Clerk Elements](https://clerk.com/docs/customization/elements/guides/styling) - [Primitives](https://clerk.com/docs/customization/elements/examples/primitives) - [shadcn/ui](https://clerk.com/docs/customization/elements/examples/shadcn-ui) - [Sign-in](https://clerk.com/docs/customization/elements/examples/sign-in) - [Sign-up](https://clerk.com/docs/customization/elements/examples/sign-up) - [Handle accepting organization invitation links](https://clerk.com/docs/custom-flows/accept-organization-invitations) - [Build a custom flow for adding an email to a user's account](https://clerk.com/docs/custom-flows/add-email) - [Build a custom flow for adding a phone number to a user's account](https://clerk.com/docs/custom-flows/add-phone) - [Sign-up with application invitations](https://clerk.com/docs/custom-flows/application-invitations) - [Add bot protection to your custom sign-up flow](https://clerk.com/docs/custom-flows/bot-sign-up-protection) - [Build a custom flow for creating organizations](https://clerk.com/docs/custom-flows/create-organizations) - [Build a custom flow for handling email links](https://clerk.com/docs/custom-flows/email-links) - [Build a custom sign-in flow with multi-factor authentication](https://clerk.com/docs/custom-flows/email-password-mfa) - [Build a custom email/password authentication flow](https://clerk.com/docs/custom-flows/email-password) - [Build a custom email or SMS OTP authentication flow](https://clerk.com/docs/custom-flows/email-sms-otp) - [Embeddable email links with sign-in tokens](https://clerk.com/docs/custom-flows/embedded-email-links) - [Build a custom flow for authenticating with enterprise connections](https://clerk.com/docs/custom-flows/enterprise-connections) - [Error handling](https://clerk.com/docs/custom-flows/error-handling) - [Build a custom flow for resetting a user's password](https://clerk.com/docs/custom-flows/forgot-password) - [Build a custom Google One Tap authentication flow](https://clerk.com/docs/custom-flows/google-one-tap) - [Build a custom flow for managing organization membership requests](https://clerk.com/docs/custom-flows/manage-membership-requests) - [Build a custom flow for creating and managing organization invitations](https://clerk.com/docs/custom-flows/manage-organization-invitations) - [Build a custom flow for managing member roles in an organization](https://clerk.com/docs/custom-flows/manage-roles) - [Build a custom flow for managing SMS-based multi-factor authentication](https://clerk.com/docs/custom-flows/manage-sms-based-mfa) - [Build a custom flow for managing SSO connections](https://clerk.com/docs/custom-flows/manage-sso-connections) - [Build a custom flow for managing TOTP-based multi-factor authentication](https://clerk.com/docs/custom-flows/manage-totp-based-mfa) - [Build a custom flow for managing a user's organization invitations](https://clerk.com/docs/custom-flows/manage-user-org-invitations) - [Build a custom multi-session flow](https://clerk.com/docs/custom-flows/multi-session-applications) - [Build a custom flow for authenticating with OAuth connections](https://clerk.com/docs/custom-flows/oauth-connections) - [Build a custom flow for switching organizations](https://clerk.com/docs/custom-flows/organization-switcher) - [Custom flows](https://clerk.com/docs/custom-flows/overview) - [Build a custom authentication flow using passkeys](https://clerk.com/docs/custom-flows/passkeys) - [Build a custom sign-out flow](https://clerk.com/docs/custom-flows/sign-out) - [Build a custom flow for updating an organization](https://clerk.com/docs/custom-flows/update-organizations) - [Build a custom flow for handling user impersonation](https://clerk.com/docs/custom-flows/user-impersonation) - [``](https://clerk.com/docs/components/clerk-provider) - [Component Reference](https://clerk.com/docs/components/overview) - [``](https://clerk.com/docs/components/pricing-table) - [``](https://clerk.com/docs/components/protect) - [`` component](https://clerk.com/docs/components/waitlist) - [`` component](https://clerk.com/docs/components/user/user-button) - [`` component](https://clerk.com/docs/components/user/user-profile) - [``](https://clerk.com/docs/components/unstyled/sign-in-button) - [``](https://clerk.com/docs/components/unstyled/sign-in-with-metamask) - [``](https://clerk.com/docs/components/unstyled/sign-out-button) - [``](https://clerk.com/docs/components/unstyled/sign-up-button) - [`` component](https://clerk.com/docs/components/organization/create-organization) - [`` component](https://clerk.com/docs/components/organization/organization-list) - [`` component](https://clerk.com/docs/components/organization/organization-profile) - [`` component](https://clerk.com/docs/components/organization/organization-switcher) - [\RedirectCallback />](https://clerk.com/docs/components/control/authenticate-with-callback) - [``](https://clerk.com/docs/components/control/clerk-loaded) - [``](https://clerk.com/docs/components/control/clerk-loading) - [`` (deprecated)](https://clerk.com/docs/components/control/redirect-to-createorganization) - [`` (deprecated)](https://clerk.com/docs/components/control/redirect-to-organizationprofile) - [``](https://clerk.com/docs/components/control/redirect-to-signin) - [``](https://clerk.com/docs/components/control/redirect-to-signup) - [`` (deprecated)](https://clerk.com/docs/components/control/redirect-to-userprofile) - [``](https://clerk.com/docs/components/control/signed-in) - [``](https://clerk.com/docs/components/control/signed-out) - [`` component](https://clerk.com/docs/components/authentication/google-one-tap) - [`` component](https://clerk.com/docs/components/authentication/sign-in) - [`` component](https://clerk.com/docs/components/authentication/sign-up) - [Clerk billing for B2B SaaS](https://clerk.com/docs/billing/b2b-saas) - [Clerk billing for B2C SaaS](https://clerk.com/docs/billing/b2c-saas) - [Clerk billing](https://clerk.com/docs/billing/overview) - [Customize your session token](https://clerk.com/docs/backend-requests/custom-session-token) - [JWT templates](https://clerk.com/docs/backend-requests/jwt-templates) - [Making requests](https://clerk.com/docs/backend-requests/making-requests) - [Manual JWT verification](https://clerk.com/docs/backend-requests/manual-jwt) - [Request authentication](https://clerk.com/docs/backend-requests/overview) - [Cookies](https://clerk.com/docs/backend-requests/resources/cookies) - [Rate limits](https://clerk.com/docs/backend-requests/resources/rate-limits) - [Session tokens](https://clerk.com/docs/backend-requests/resources/session-tokens) - [Tokens and signatures](https://clerk.com/docs/backend-requests/resources/tokens-and-signatures) - [Sign-up & sign-in overview](https://clerk.com/docs/authentication/overview) - [Coinbase Wallet](https://clerk.com/docs/authentication/web3/coinbase-wallet) - [MetaMask](https://clerk.com/docs/authentication/web3/metamask) - [OKX Wallet](https://clerk.com/docs/authentication/web3/okx-wallet) - [Account linking for OAuth](https://clerk.com/docs/authentication/social-connections/account-linking) - [Add Apple as a social connection](https://clerk.com/docs/authentication/social-connections/apple) - [Add Atlassian as a social connection](https://clerk.com/docs/authentication/social-connections/atlassian) - [Add Bitbucket as a social connection](https://clerk.com/docs/authentication/social-connections/bitbucket) - [Add Box as a social connection](https://clerk.com/docs/authentication/social-connections/box) - [Add Coinbase as a social connection](https://clerk.com/docs/authentication/social-connections/coinbase) - [Add a custom OAuth provider as a social connection](https://clerk.com/docs/authentication/social-connections/custom-provider) - [Add Discord as a social connection](https://clerk.com/docs/authentication/social-connections/discord) - [Add Dropbox as a social connection](https://clerk.com/docs/authentication/social-connections/dropbox) - [Add Facebook as a social connection](https://clerk.com/docs/authentication/social-connections/facebook) - [Add GitHub as a social connection](https://clerk.com/docs/authentication/social-connections/github) - [Add GitLab as a social connection](https://clerk.com/docs/authentication/social-connections/gitlab) - [Add Google as a social connection](https://clerk.com/docs/authentication/social-connections/google) - [Add HubSpot as a social connection](https://clerk.com/docs/authentication/social-connections/hubspot) - [Add Hugging Face as a social connection](https://clerk.com/docs/authentication/social-connections/huggingface) - [Add LINE as a social connection](https://clerk.com/docs/authentication/social-connections/line) - [Add Linear as a social connection](https://clerk.com/docs/authentication/social-connections/linear) - [Add LinkedIn Open ID Connect (OIDC) as a social connection](https://clerk.com/docs/authentication/social-connections/linkedin-oidc) - [LinkedIn (deprecated)](https://clerk.com/docs/authentication/social-connections/linkedin) - [Add Microsoft Azure Entra ID as a social connection](https://clerk.com/docs/authentication/social-connections/microsoft) - [Add Notion as a social connection](https://clerk.com/docs/authentication/social-connections/notion) - [Social connection (OAuth) providers](https://clerk.com/docs/authentication/social-connections/oauth) - [Social connections (OAuth)](https://clerk.com/docs/authentication/social-connections/overview) - [Add Slack as a social connection](https://clerk.com/docs/authentication/social-connections/slack) - [Add Spotify as a social connection](https://clerk.com/docs/authentication/social-connections/spotify) - [Add TikTok as a social connection](https://clerk.com/docs/authentication/social-connections/tiktok) - [Add Twitch as a social connection](https://clerk.com/docs/authentication/social-connections/twitch) - [Twitter v1 (deprecated)](https://clerk.com/docs/authentication/social-connections/twitter) - [Add X/Twitter v2 as a social connection](https://clerk.com/docs/authentication/social-connections/x-twitter) - [Add Xero as a social connection](https://clerk.com/docs/authentication/social-connections/xero) - [Account linking](https://clerk.com/docs/authentication/enterprise-connections/account-linking) - [Enterprise SSO authentication flows](https://clerk.com/docs/authentication/enterprise-connections/authentication-flows) - [Just-in-Time (JIT) Provisioning during SAML SSO](https://clerk.com/docs/authentication/enterprise-connections/jit-provisioning) - [Enterprise Single Sign-On (SSO)](https://clerk.com/docs/authentication/enterprise-connections/overview) - [Add Microsoft Entra ID as a SAML connection](https://clerk.com/docs/authentication/enterprise-connections/saml/azure) - [Add a custom Identity Provider (IdP) as a SAML connection](https://clerk.com/docs/authentication/enterprise-connections/saml/custom-provider) - [Add Google Workspace as a SAML connection](https://clerk.com/docs/authentication/enterprise-connections/saml/google) - [Add Okta Workforce as a SAML connection](https://clerk.com/docs/authentication/enterprise-connections/saml/okta) - [Add a custom OpenID Connect (OIDC) Provider as an enterprise connection](https://clerk.com/docs/authentication/enterprise-connections/oidc/custom-provider) - [Add Google as an EASIE connection](https://clerk.com/docs/authentication/enterprise-connections/easie/google) - [Add Microsoft as an EASIE connection](https://clerk.com/docs/authentication/enterprise-connections/easie/microsoft) - [Email and SMS templates](https://clerk.com/docs/authentication/configuration/email-sms-templates) - [Force multi-factor authentication (MFA) for all users](https://clerk.com/docs/authentication/configuration/force-mfa) - [Legal compliance](https://clerk.com/docs/authentication/configuration/legal-compliance) - [Restrictions](https://clerk.com/docs/authentication/configuration/restrictions) - [Session options](https://clerk.com/docs/authentication/configuration/session-options) - [Sign-up and sign-in options](https://clerk.com/docs/authentication/configuration/sign-up-sign-in-options) - [Next.js App Router Authentication](https://clerk.com/docs/ai-prompts/nextjs) - [AI Prompts](https://clerk.com/docs/ai-prompts/overview) - [React Authentication](https://clerk.com/docs/ai-prompts/react) - [Authentication across different domains](https://clerk.com/docs/advanced-usage/satellite-domains) - [Proxying the Clerk Frontend API](https://clerk.com/docs/advanced-usage/using-proxies) - [Linking to the Account Portal](https://clerk.com/docs/account-portal/direct-links) - [Disabling the Account Portal](https://clerk.com/docs/account-portal/disable-account-portal) - [Getting started with the Account Portal](https://clerk.com/docs/account-portal/getting-started) - [Account Portal overview](https://clerk.com/docs/account-portal/overview)