diff --git a/docs/account-portal/custom-redirects.mdx b/docs/account-portal/custom-redirects.mdx
index 881e5a01e1..a554ffac49 100644
--- a/docs/account-portal/custom-redirects.mdx
+++ b/docs/account-portal/custom-redirects.mdx
@@ -1,10 +1,8 @@
---
-title: Customizing your Account Portal redirect
+title: Customizing your Account Portal redirects
description: Customize where your users are redirected to after they sign in or sign up.
---
-# Customizing your Account Portal redirects
-
After a user signs in or signs up, Clerk automatically redirects users back to your application by appending a `redirect_url` query param on the Account Portal page. However, Clerk provides various options for you to customize where your users are redirected to.
## Environment variables
diff --git a/docs/account-portal/direct-links.mdx b/docs/account-portal/direct-links.mdx
index 0e23e72684..25551dbb4f 100644
--- a/docs/account-portal/direct-links.mdx
+++ b/docs/account-portal/direct-links.mdx
@@ -3,8 +3,6 @@ title: Direct links
description: Learn how to share direct links to your Account Portal pages, and how to set up fallback redirects.
---
-# Direct links
-
## Redirect URL
If a user accesses an Account Portal page *directly*, the `redirect_url` query param will not be present, so the user cannot be redirected back to your application once they are finished with their Account Portal flow. To prevent this, it is recommend that you always specify the redirect in the link when sharing it.
diff --git a/docs/account-portal/disable-account-portal.mdx b/docs/account-portal/disable-account-portal.mdx
index a585fdf8cf..ebe8686b93 100644
--- a/docs/account-portal/disable-account-portal.mdx
+++ b/docs/account-portal/disable-account-portal.mdx
@@ -3,8 +3,6 @@ title: Disabling the Account Portal
description: Learn how to disable the Account Portal.
---
-# Disabling the Account Portal
-
If you would like to disable the Account Portal, in the Clerk Dashboard, go to the **[Account Portal](https://dashboard.clerk.com/last-active?path=account-portal)** page and then open the **Danger** tab. Please ensure that you set up an authentication flow for your users via the instructions below first, as applying this setting will immediately result in a 404 for all Account Portal pages.
diff --git a/docs/account-portal/getting-started.mdx b/docs/account-portal/getting-started.mdx
index 648ec4b220..37b4515542 100644
--- a/docs/account-portal/getting-started.mdx
+++ b/docs/account-portal/getting-started.mdx
@@ -3,8 +3,6 @@ title: Getting started with the Account Portal
description: The Account Portal offers a comprehensive solution for managing user authentication and profile management in your web application and is the fastest way to add Clerk's authentication to your application with minimal code required.
---
-# Getting started with the Account Portal
-
To integrate the Account Portal into your application, simply follow one of our [quickstart guides](/docs/quickstarts/overview).
Once your application is set up, all you have to do is fire it up. Clerk will automatically redirect your users to the Account Portal sign-in/sign-up pages. Once a user has successfully authenticated themself, they will be automatically redirected back to your application with an active session.
diff --git a/docs/account-portal/overview.mdx b/docs/account-portal/overview.mdx
index 8cfcc1f5eb..106f57ef39 100644
--- a/docs/account-portal/overview.mdx
+++ b/docs/account-portal/overview.mdx
@@ -1,10 +1,8 @@
---
-title: Account Portal Overview
+title: Account portal overview
description: The Account Portal offers a comprehensive solution for managing user authentication and profile management in your web application and is the fastest way to add Clerk's authentication to your application with minimal code required.
---
-# Account portal overview
-
The Account Portal in Clerk is a powerful feature that allows you to streamline the sign-in, sign-up, and profile management experience for your users, without having to build your own components or host your own pages.
This page is now deprecated. Please see the new [guide](/docs/authentication/social-connections/linkedin-oidc) on how to set up a social connection with LinkedIn.
diff --git a/docs/authentication/social-connections/microsoft.mdx b/docs/authentication/social-connections/microsoft.mdx
index e02d03f1a5..35f3c7140a 100644
--- a/docs/authentication/social-connections/microsoft.mdx
+++ b/docs/authentication/social-connections/microsoft.mdx
@@ -3,8 +3,6 @@ title: Microsoft
description: Learn how to set up social connection with Microsoft.
---
-# Microsoft
-
How to set up social connection with Microsoft Azure Active Directory
## Overview
diff --git a/docs/authentication/social-connections/notion.mdx b/docs/authentication/social-connections/notion.mdx
index 70d4090361..1a4390fcfd 100644
--- a/docs/authentication/social-connections/notion.mdx
+++ b/docs/authentication/social-connections/notion.mdx
@@ -3,8 +3,6 @@ title: Notion
description: Learn how to set up social connection with Notion.
---
-# Notion
-
How to set up social connection with Notion
## Overview
diff --git a/docs/authentication/social-connections/oauth.mdx b/docs/authentication/social-connections/oauth.mdx
index 85644a2105..c47e508fdd 100644
--- a/docs/authentication/social-connections/oauth.mdx
+++ b/docs/authentication/social-connections/oauth.mdx
@@ -3,8 +3,6 @@ title: Social connections (OAuth)
description: Learn how to effortlessly add social connections to your application using popular OAuth providers like Google, Facebook, Github and more.
---
-# Social connections (OAuth)
-
Clerk makes it easy to add social connection capabilities to your application. With social connections, users gain frictionless access to your application by using their existing credentials from an OAuth provider (Google, Facebook, X/Twitter, etc.) without having to go through complicated registration flows. Social connections are designed to simplify the sign-up and sign-in process for the end-user, resulting in higher conversion rates, a streamlined user data collection flow, and an overall better user experience.
diff --git a/docs/authentication/social-connections/overview.mdx b/docs/authentication/social-connections/overview.mdx
index 3604d45309..dce4d19610 100644
--- a/docs/authentication/social-connections/overview.mdx
+++ b/docs/authentication/social-connections/overview.mdx
@@ -3,188 +3,139 @@ title: Social connections (authentication providers)
description: Browse the wide range of application providers that Clerk provides to ease your user's sign-up and sign-in processes.
---
-# Social connections (authentication providers)
-
Clerk provides a wide range of application providers to ease your user's sign-up and sign-in processes.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+- [Facebook](/docs/authentication/social-connections/facebook)
+- Add Facebook as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/facebook.svg)
+
+---
+
+- [Twitter](/docs/authentication/social-connections/twitter)
+- Add Twitter as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/twitter.svg)
+
+---
+
+- [TikTok](/docs/authentication/social-connections/tiktok)
+- Add TikTok as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/tiktok.svg)
+
+---
+
+- [Discord](/docs/authentication/social-connections/discord)
+- Add Discord as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/discord.svg)
+
+---
+
+- [Twitch](/docs/authentication/social-connections/twitch)
+- Add Twitch as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/twitch.svg)
+
+---
+
+- [GitHub](/docs/authentication/social-connections/github)
+- Add GitHub as an authentication provider for your Clerk app.
+- { }
+
+---
+
+- [GitLab](/docs/authentication/social-connections/gitlab)
+- Add GitLab as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/gitlab.svg)
+
+---
+
+- [LinkedIn](/docs/authentication/social-connections/linkedin-oidc)
+- Add LinkedIn as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/linkedin.svg)
+
+---
+
+- [HubSpot](/docs/authentication/social-connections/hubspot)
+- Add HubSpot as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/hubspot.svg)
+
+---
+
+- [Atlassian](/docs/authentication/social-connections/atlassian)
+- Add Atlassian as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/atlassian.svg)
+
+---
+
+- [Bitbucket](/docs/authentication/social-connections/bitbucket)
+- Add Bitbucket as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/bitbucket.svg)
+
+---
+
+- [Dropbox](/docs/authentication/social-connections/dropbox)
+- Add Dropbox as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/dropbox.svg)
+
+---
+
+- [Microsoft](/docs/authentication/social-connections/microsoft)
+- Add Microsoft as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/microsoft.svg)
+
+---
+
+- [Notion](/docs/authentication/social-connections/notion)
+- Add Notion as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/notion.svg)
+
+---
+
+- [Apple](/docs/authentication/social-connections/apple)
+- Add Apple as an authentication provider for your Clerk app.
+- { }
+
+---
+
+- [LINE](/docs/authentication/social-connections/line)
+- Add LINE as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/line.svg)
+
+---
+
+- [Coinbase](/docs/authentication/social-connections/coinbase)
+- Add Coinbase as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/coinbase.svg)
+
+---
+
+- [Spotify](/docs/authentication/social-connections/spotify)
+- Add Spotify as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/spotify.svg)
+
+---
+
+- [Box](/docs/authentication/social-connections/box)
+- Add Box as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/box.svg)
+
+---
+
+/>
+- [Xero](/docs/authentication/social-connections/xero)
+- Add Xero as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/xero.svg)
+
+---
+
+- [Slack](/docs/authentication/social-connections/slack)
+- Add Slack as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/slack.svg)
+
+---
+
+- [Linear](/docs/authentication/social-connections/linear)
+- Add Linear as an authentication provider for your Clerk app.
+- ![](/docs/images/logos/auth_providers/linear.svg)
+
+
\ No newline at end of file
diff --git a/docs/authentication/social-connections/slack.mdx b/docs/authentication/social-connections/slack.mdx
index ff3011c6bd..03ac6c9f47 100644
--- a/docs/authentication/social-connections/slack.mdx
+++ b/docs/authentication/social-connections/slack.mdx
@@ -3,8 +3,6 @@ title: Slack
description: Learn how to set up social connection with Slack.
---
-# Slack
-
How to set up social connection with Slack
## Overview
diff --git a/docs/authentication/social-connections/spotify.mdx b/docs/authentication/social-connections/spotify.mdx
index 68fe7d36a4..e3b805af40 100644
--- a/docs/authentication/social-connections/spotify.mdx
+++ b/docs/authentication/social-connections/spotify.mdx
@@ -3,8 +3,6 @@ title: Spotify
description: Learn how to set up a social connection with Spotify in your Clerk application.
---
-# Spotify
-
Learn how to set up a social connection with Spotify in your Clerk application.
Clerk does not currently support preconfigured shared OAuth credentials for Spotify on development instances. You will have to provide custom credentials for both development *and* production instances, which includes generating your own Client ID and Client Secret using your Spotify Developer account. Don't worry, this guide will walk you through that process in just a few simple steps.
diff --git a/docs/authentication/social-connections/tiktok.mdx b/docs/authentication/social-connections/tiktok.mdx
index 16ae6c1c76..59d0340a55 100644
--- a/docs/authentication/social-connections/tiktok.mdx
+++ b/docs/authentication/social-connections/tiktok.mdx
@@ -3,8 +3,6 @@ title: TikTok
description: Learn how to set up social connection with TikTok.
---
-# TikTok
-
How to set up social connection with TikTok
## Overview
diff --git a/docs/authentication/social-connections/twitch.mdx b/docs/authentication/social-connections/twitch.mdx
index f716a9fbc2..d1da874ed4 100644
--- a/docs/authentication/social-connections/twitch.mdx
+++ b/docs/authentication/social-connections/twitch.mdx
@@ -3,8 +3,6 @@ title: Twitch
description: Learn how to set up social connection with Twitch.
---
-# Twitch
-
How to set up social connection with Twitch
## Overview
diff --git a/docs/authentication/social-connections/twitter.mdx b/docs/authentication/social-connections/twitter.mdx
index e6ad248bda..fa662db34b 100644
--- a/docs/authentication/social-connections/twitter.mdx
+++ b/docs/authentication/social-connections/twitter.mdx
@@ -3,8 +3,6 @@ title: Twitter v1 (Deprecated)
description: Learn how to set up social connection with Twitter v1.
---
-# Twitter v1 (Deprecated)
-
[X/Twitter](https://twitter.com/XDevelopers/status/1641222782594990080) considers this method deprecated. We strongly recommend using the [latest version (v2)](/docs/authentication/social-connections/x-twitter) for future-proofing your application.
diff --git a/docs/authentication/social-connections/x-twitter.mdx b/docs/authentication/social-connections/x-twitter.mdx
index 5ebf108055..f42f894c37 100644
--- a/docs/authentication/social-connections/x-twitter.mdx
+++ b/docs/authentication/social-connections/x-twitter.mdx
@@ -1,10 +1,8 @@
---
-title: Set up a social connection with X/Twitter v2
+title: X (Twitter V2)
description: Learn how to set up a social connection with X/Twitter v2 in your Clerk application.
---
-# X (Twitter V2)
-
component
+title: '` ` component'
description: Clerk's component renders a UI for signing in users.
---
-# ` ` component
-
component
+title: '` ` component'
description: Clerk's component renders a UI for signing up users.
---
-# ` ` component
-
+title: '``'
description: The component wraps your React application to provide active session and user context to Clerk's hooks and other components.
---
-# ``
-
The `` component wraps your React application to provide active session and user context to Clerk's hooks and other components.
## Usage
diff --git a/docs/components/control/authenticate-with-callback.mdx b/docs/components/control/authenticate-with-callback.mdx
index 71da66259f..70318a4cc3 100644
--- a/docs/components/control/authenticate-with-callback.mdx
+++ b/docs/components/control/authenticate-with-callback.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '` `'
description: The ` ` is used to complete a custom OAuth flow. Simply render the component under the route you passed as `redirectUrl` to the `authenticateWithRedirect` methods.
---
-# ` `
-
The ` ` is used to complete a custom OAuth flow. Simply render the component under the route you passed as `redirectUrl` to the `authenticateWithRedirect` methods.
## Usage
diff --git a/docs/components/control/clerk-loaded.mdx b/docs/components/control/clerk-loaded.mdx
index aed0006643..a7545b60c6 100644
--- a/docs/components/control/clerk-loaded.mdx
+++ b/docs/components/control/clerk-loaded.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The `` component guarantees that the Clerk object has loaded and will be available under `window.Clerk`. This allows you to wrap child components to access the Clerk object without the need to check it exists.
---
-# ``
-
The `` component guarantees that the Clerk object has loaded and will be available under `window.Clerk`. This allows you to wrap child components to access the `Clerk` object without the need to check it exists.
## Usage
diff --git a/docs/components/control/clerk-loading.mdx b/docs/components/control/clerk-loading.mdx
index a7c5b7ecf9..8740117f47 100644
--- a/docs/components/control/clerk-loading.mdx
+++ b/docs/components/control/clerk-loading.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The `` renders its children while Clerk is loading, and is helpful for showing a custom loading state.
---
-# ``
-
The `` renders its children while Clerk is loading, and is helpful for showing a custom loading state.
## Usage
diff --git a/docs/components/control/multi-session.mdx b/docs/components/control/multi-session.mdx
index 8182865a1a..2192007715 100644
--- a/docs/components/control/multi-session.mdx
+++ b/docs/components/control/multi-session.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The `` provides a wrapper for your React application that guarantees a full rerendering cycle everytime the current session and user changes.
---
-# ``
-
The `` provides a wrapper for your React application that guarantees a full rerendering cycle everytime the current session and user changes.
## Usage
diff --git a/docs/components/control/redirect-to-createorganization.mdx b/docs/components/control/redirect-to-createorganization.mdx
index 31bbbb8dd0..32e600a836 100644
--- a/docs/components/control/redirect-to-createorganization.mdx
+++ b/docs/components/control/redirect-to-createorganization.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '` `'
description: The component will navigate to the user profile URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
---
-# ` `
-
The ` ` component will navigate to the create organization flow which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
## Usage
diff --git a/docs/components/control/redirect-to-organizationprofile.mdx b/docs/components/control/redirect-to-organizationprofile.mdx
index cfbb841901..ef62b6e62b 100644
--- a/docs/components/control/redirect-to-organizationprofile.mdx
+++ b/docs/components/control/redirect-to-organizationprofile.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '` `'
description: The component will navigate to the organization profile URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
---
-# ` `
-
The ` ` component will navigate to the organization profile URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
## Usage
diff --git a/docs/components/control/redirect-to-signin.mdx b/docs/components/control/redirect-to-signin.mdx
index 52c8400c53..f3c113c98c 100644
--- a/docs/components/control/redirect-to-signin.mdx
+++ b/docs/components/control/redirect-to-signin.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '` `'
description: The component will navigate to the sign in URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
---
-# ` `
-
The ` ` component will navigate to the sign in URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
## Usage
diff --git a/docs/components/control/redirect-to-signup.mdx b/docs/components/control/redirect-to-signup.mdx
index a9d55ff37d..102dfec9b2 100644
--- a/docs/components/control/redirect-to-signup.mdx
+++ b/docs/components/control/redirect-to-signup.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '` `'
description: The component will navigate to the sign up URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
---
-# ` `
-
The ` ` component will navigate to the sign up URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
## Usage
diff --git a/docs/components/control/redirect-to-userprofile.mdx b/docs/components/control/redirect-to-userprofile.mdx
index f758deb5aa..eeda8ae1a6 100644
--- a/docs/components/control/redirect-to-userprofile.mdx
+++ b/docs/components/control/redirect-to-userprofile.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '` `'
description: The component will navigate to the user profile URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
---
-# ` `
-
The ` ` component will navigate to the user profile URL which has been configured in your application instance. The behavior will be just like a server-side (3xx) redirect, and will override the current location in the history stack.
## Usage
diff --git a/docs/components/control/signed-in.mdx b/docs/components/control/signed-in.mdx
index 92cfd86c70..3bdbee23fc 100644
--- a/docs/components/control/signed-in.mdx
+++ b/docs/components/control/signed-in.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: Conditionally render content only when a user is signed in.
---
-# ``
-
## Overview
The `` component offers authentication checks as a cross-cutting concern. Any children components wrapped by a `` component will be rendered only if there's a User with an active Session signed in your application.
diff --git a/docs/components/control/signed-out.mdx b/docs/components/control/signed-out.mdx
index e23724d7d6..ba161cdcbc 100644
--- a/docs/components/control/signed-out.mdx
+++ b/docs/components/control/signed-out.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: Conditionally render content only when a user is signed out.
---
-# ``
-
The `` component offers authentication checks as a cross-cutting concern. Any child nodes wrapped by a `` component will be rendered only if there's no User signed in to your application.
## Usage
diff --git a/docs/components/customization/layout.mdx b/docs/components/customization/layout.mdx
index ed133d66c4..398bace13b 100644
--- a/docs/components/customization/layout.mdx
+++ b/docs/components/customization/layout.mdx
@@ -3,8 +3,6 @@ title: Layout
description: Utilize Clerk's layout key in order to change the layout of the and components, as well as important links to your support, terms and privacy pages.
---
-# Layout
-
The layout key can be used to change the layout of the [` `](/docs/components/authentication/sign-in) and [` `](/docs/components/authentication/sign-up) components, as well as important links to your support, terms, and privacy pages.
## Usage
diff --git a/docs/components/customization/localization.mdx b/docs/components/customization/localization.mdx
index 2fd45e1fd3..a69c11e3d2 100644
--- a/docs/components/customization/localization.mdx
+++ b/docs/components/customization/localization.mdx
@@ -3,8 +3,6 @@ title: Localization prop (experimental)
description: Use the Clerk localizations package to override and provide predefined or custom localizations for your Clerk Components, enabling you to offer localized content or tailor the wording to match your brand.
---
-# Localization prop (experimental)
-
This feature is currently experimental and may not behave as expected. If you encounter any issues, please reach out to [support](https://clerk.com/support) with as much detail as possible.
diff --git a/docs/components/customization/organization-profile.mdx b/docs/components/customization/organization-profile.mdx
index fa95971c45..9a1472b417 100644
--- a/docs/components/customization/organization-profile.mdx
+++ b/docs/components/customization/organization-profile.mdx
@@ -1,10 +1,8 @@
---
-title: Add custom pages and links to the component
+title: '` ` customization'
description: Learn how to add custom pages and include external links within the navigation sidebar of the component.
---
-# ` ` customization
-
The [` `](/docs/components/organization/organization-profile) component supports the addition of custom pages and use of external links in the navigation sidebar.
There are two ways to render the ` ` component:
diff --git a/docs/components/customization/overview.mdx b/docs/components/customization/overview.mdx
index 29041742cb..0aefa8a859 100644
--- a/docs/components/customization/overview.mdx
+++ b/docs/components/customization/overview.mdx
@@ -3,8 +3,6 @@ title: Appearance prop
description: Utilize Clerk's appearance property in order to share styles across every component or individually to any of the Clerk components.
---
-# Appearance prop
-
The appearance prop can be applied to [React's ``](/docs/components/clerk-provider) to share styles across every component, or individually to any of the Clerk components.
This applies to all of the React-based packages, like [Next.js](/docs/quickstarts/nextjs) and [Gatsby](/docs/quickstarts/gatsby), as well as [the pure JavaScript ClerkJS package](/docs/references/javascript/overview).
diff --git a/docs/components/customization/themes.mdx b/docs/components/customization/themes.mdx
index 15c1248b46..9bd8801721 100644
--- a/docs/components/customization/themes.mdx
+++ b/docs/components/customization/themes.mdx
@@ -3,8 +3,6 @@ title: Themes
description: Clerk currently offers four pre-built themes for you to customize the overall appearance of your Clerk app.
---
-# Themes
-
Clerk currently offers four pre-built themes that can be exported from `@clerk/themes`:
- [The default theme](#default-theme)
diff --git a/docs/components/customization/user-profile.mdx b/docs/components/customization/user-profile.mdx
index fea51cf8e2..7a4cb125a7 100644
--- a/docs/components/customization/user-profile.mdx
+++ b/docs/components/customization/user-profile.mdx
@@ -1,10 +1,8 @@
---
-title: Add custom pages and links to the component
+title: Add custom pages and links to the ` ` component
description: Learn how to add custom pages and include external links within the navigation sidebar of the component.
---
-# Add custom pages and links to the ` ` component
-
The [` `](/docs/components/user/user-profile) component supports the addition of custom pages and use of external links in the navigation sidebar.
There are two ways to render the ` ` component:
diff --git a/docs/components/customization/variables.mdx b/docs/components/customization/variables.mdx
index 304cdf01ca..fb5f8d8c37 100644
--- a/docs/components/customization/variables.mdx
+++ b/docs/components/customization/variables.mdx
@@ -3,8 +3,6 @@ title: Variables
description: Utilize Clerk's variables property in order to adjust the general styles of the component's base theme, like colors, backgrounds, typography.
---
-# Variables
-
The `variables` property is used to adjust the general styles of the component's base theme, like colors, backgrounds, typography.
## Usage
diff --git a/docs/components/organization/create-organization.mdx b/docs/components/organization/create-organization.mdx
index b97be5bdbe..9c930662f8 100644
--- a/docs/components/organization/create-organization.mdx
+++ b/docs/components/organization/create-organization.mdx
@@ -1,10 +1,8 @@
---
-title: component
+title: '` ` component'
description: Clerk's component is used to render an organization creation UI that allows users to create brand new organizations within your application.
---
-# ` ` component
-
component
+title: '` ` component'
description: Clerk's component is used to display organization related memberships, invitations, and suggestions for the user.
---
-# ` ` component
-
component
+title: '` ` component'
description: The ` ` component is used to render a beautiful, full-featured organization management UI that allows users to manage their organization profile and security settings.
---
-# ` ` component
-
component
+title: '` ` component'
description: Clerk's component is used to enable the ability to switch between available organizations the user may be part of in your application.
---
-# ` ` component
-
` and ` ` states for assertions on the [Clerk object](/docs/references/javascript/clerk/clerk). Control components allow you to build custom user flows with Clerk.
+
+## Authentication Components
+
+### UI Components
+
+- [` `](/docs/components/authentication/sign-in)
+- [` `](/docs/components/authentication/sign-up)
+- [` `](/docs/components/unstyled/sign-in-button)
+- [` `](/docs/components/unstyled/sign-up-button)
+- [` `](/docs/components/unstyled/sign-out-button)
+
+### Control Components
+
+- [` `](/docs/components/control/redirect-to-signin)
+- [` `](/docs/components/control/redirect-to-signup)
+- [` `](/docs/components/control/signed-in)
+- [` `](/docs/components/control/signed-out)
+
+## User Components
+
+### UI Components
+
+- [` `](/docs/components/user/user-button)
+- [` `](/docs/components/user/user-profile)
+
+### Control Components
+
+- [` `](/docs/components/control/redirect-to-userprofile)
+
+## Organization Components
+
+### UI Components
+
+- [` `](/docs/components/organization/create-organization)
+- [` `](/docs/components/organization/organization-profile)
+- [` `](/docs/components/organization/organization-switcher)
+- [` `](/docs/components/organization/organization-list)
+
+### Control Components
+
+- [` `](/docs/components/control/redirect-to-organizationprofile)
+- [` `](/docs/components/control/redirect-to-createorganization)
+
+## Utility Components
+
+- [` `](/docs/components/control/clerk-loaded)
+- [` `](/docs/components/control/clerk-loading)
+
+## Advanced Components
+
+- [` `](/docs/components/control/authenticate-with-callback)
+- [` `](/docs/components/control/multi-session)
+- [` `](/docs/components/unstyled/sign-in-with-metamask)
+
+## Customization Guides
+
+- [Theme components with the appearance prop](/docs/components/customization/overview)
+- [Localize components with the `localization` prop (experimental)](/docs/components/control/clerk-loaded)
+- [Add pages to the ` ` component](/docs/components/customization/user-profile)
+- [Add pages to the ` ` component](/docs/components/customization/organization-profile)
+
+
+
+- [Join our Discord](/discord 'Join Discord')
+- Join our official Discord server to chat with us directly and become a part of the Clerk community.
+- { }
+
+---
+
+- [Need help?](/support 'Get help')
+- Contact us through Discord, Twitter, or email to receive answers to your questions and learn more about Clerk.
+- { }
+
+
\ No newline at end of file
diff --git a/docs/components/protect.mdx b/docs/components/protect.mdx
index 32efd00e19..ae31dccf27 100644
--- a/docs/components/protect.mdx
+++ b/docs/components/protect.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The Protect component is used for authorization. It only renders its children when the current user has the specified permission or role in the organization.
---
-# ``
-
The `` component is used for authorization. It only renders its children when the current user has the specified [permission or role](/docs/organizations/roles-permissions) in the organization.
## Usage
diff --git a/docs/components/unstyled/sign-in-button.mdx b/docs/components/unstyled/sign-in-button.mdx
index 112c50828e..268ac55959 100644
--- a/docs/components/unstyled/sign-in-button.mdx
+++ b/docs/components/unstyled/sign-in-button.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The component is a button that links to the sign-in page or displays the sign-in modal.
---
-# ``
-
The `` component is a button that links to the sign-in page or displays the sign-in modal.
## `` properties
diff --git a/docs/components/unstyled/sign-in-with-metamask.mdx b/docs/components/unstyled/sign-in-with-metamask.mdx
index 04ad52f02e..34cbd135ed 100644
--- a/docs/components/unstyled/sign-in-with-metamask.mdx
+++ b/docs/components/unstyled/sign-in-with-metamask.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The `` component is used to complete a one-click, cryptographically-secure sign-in flow using MetaMask.
---
-# ``
-
The `` component is used to complete a one-click, cryptographically-secure sign-in flow using MetaMask.
## How to use the `` component
diff --git a/docs/components/unstyled/sign-out-button.mdx b/docs/components/unstyled/sign-out-button.mdx
index 18da1126cf..15c9f55eb6 100644
--- a/docs/components/unstyled/sign-out-button.mdx
+++ b/docs/components/unstyled/sign-out-button.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The `` component is a button that signs a user out.
---
-# ``
-
The `` component is a button that signs a user out. By default, it is a `` tag that says **Sign Out**, but it is completely customizable by passing children.
## `` properties
diff --git a/docs/components/unstyled/sign-up-button.mdx b/docs/components/unstyled/sign-up-button.mdx
index 0b17fde0a9..6249bb1e61 100644
--- a/docs/components/unstyled/sign-up-button.mdx
+++ b/docs/components/unstyled/sign-up-button.mdx
@@ -1,10 +1,8 @@
---
-title:
+title: '``'
description: The component is a button that links to the sign-up page or displays the sign-up modal.
---
-# ``
-
The `` component is a button that links to the sign-up page or displays the sign-up modal.
## `` properties
diff --git a/docs/components/user/user-button.mdx b/docs/components/user/user-button.mdx
index fa0500679c..64dd0f4e5d 100644
--- a/docs/components/user/user-button.mdx
+++ b/docs/components/user/user-button.mdx
@@ -1,10 +1,8 @@
---
-title: component
+title: '` ` component'
description: The ` ` component is used to render the familiar user button UI popularized by Google.
---
-# ` ` component
-
The ` ` component is used to render the familiar user button UI popularized by Google.
diff --git a/docs/components/user/user-profile.mdx b/docs/components/user/user-profile.mdx
index f47018021f..5297b44eb2 100644
--- a/docs/components/user/user-profile.mdx
+++ b/docs/components/user/user-profile.mdx
@@ -1,10 +1,8 @@
---
-title: component
+title: '` ` component'
description: The ` ` component is used to render a beautiful, full-featured account management UI that allows users to manage their profile and security settings.
---
-# ` ` component
-
diff --git a/docs/custom-flows/email-sms-otp.mdx b/docs/custom-flows/email-sms-otp.mdx
index e95fce173f..5bc1bcdd3a 100644
--- a/docs/custom-flows/email-sms-otp.mdx
+++ b/docs/custom-flows/email-sms-otp.mdx
@@ -3,8 +3,6 @@ title: Email/SMS OTP (One-time Password)
description: Learn how to send one-time codes (OTP) to authenticate users.
---
-# Email/SMS OTP (One-time Password)
-
Clerk supports passwordless authentication, which lets users sign in and sign up without having to remember a password. During sign-in, users will be asked to enter their identifier (email address or phone number) to receive a one-time password (OTP), also referred to as a one-time code, and complete the authentication process.
Arguably, passwordless authentication provides greater security and a better user experience than traditional passwords. However, it is not without its downsides, and often still boils down to the email providers "knowledge based factor" instead of yours.
diff --git a/docs/custom-flows/embedded-magic-links.mdx b/docs/custom-flows/embedded-magic-links.mdx
index 9a8d067faf..69879369de 100644
--- a/docs/custom-flows/embedded-magic-links.mdx
+++ b/docs/custom-flows/embedded-magic-links.mdx
@@ -3,8 +3,6 @@ title: Embeddable magic links
description: Learn how to build custom magic link flows to increase user engagement and reduce drop off in transactional emails, SMS's, and anywhere else you can imagine.
---
-# Embeddable magic links
-
A "magic link" is a link, that when pressed, will automatically authenticate your user, so that they can quickly perform some action on your site with less friction than if they had to sign in manually.
Common use cases include:
diff --git a/docs/custom-flows/error-handling.mdx b/docs/custom-flows/error-handling.mdx
index ddc3e0bf61..3309e7f8ef 100644
--- a/docs/custom-flows/error-handling.mdx
+++ b/docs/custom-flows/error-handling.mdx
@@ -3,8 +3,6 @@ title: Error handling
description: Provide your users with useful information about the errors being returned from Sign In and Sign Up requests.
---
-# Error handling
-
When using the [`signUp()`](/docs/references/react/use-sign-up) or [`signIn()`](/docs/references/react/use-sign-in) functions, proper error handling can help you provide your users with useful feedback.
## Example
diff --git a/docs/custom-flows/forgot-password.mdx b/docs/custom-flows/forgot-password.mdx
index 2cb1115e00..520d5a1bb1 100644
--- a/docs/custom-flows/forgot-password.mdx
+++ b/docs/custom-flows/forgot-password.mdx
@@ -3,8 +3,6 @@ title: Create a custom Forgot Password flow using Clerk's API
description: Create a custom forgot password flow for your users using the lower level methods provided by the ClerkJS SDK.
---
-# Create a custom Forgot Password flow using Clerk's API
-
Clerk's [prebuilt components](/docs/components/overview) provide a **Forgot Password** flow for your users out of the box. However, if you want more control over the user experience, you can create a custom **Forgot Password** flow using the lower-level methods provided by the [ClerkJS SDK](/docs/references/javascript/overview).
In the following example, the user is asked to provide their email address. After submitting their email, the user is asked to provide a new password and the password reset code that was sent to their email. The user is then signed in with their new password.
diff --git a/docs/custom-flows/invitations.mdx b/docs/custom-flows/invitations.mdx
index 905a7fede5..39ce73b160 100644
--- a/docs/custom-flows/invitations.mdx
+++ b/docs/custom-flows/invitations.mdx
@@ -3,8 +3,6 @@ title: Invitations
description: Learn how to invite users to your Clerk application.
---
-# Invitations
-
Clerk makes it easy to invite users to your application via the invitations feature. This feature is offered by default to all Clerk applications without any extra configuration. Currently, Clerk supports inviting users via email.
Inviting users to your application begins with creating an invitation for an email address. Once the invitation is created, an email with an invitation link will be sent to the user's email address. By clicking on the invitation link, the user will be redirected to the application's sign up page and their email address will have been automatically verified. At this point, the user will just have to fill in the rest of the details according to the application's settings.
diff --git a/docs/custom-flows/magic-links.mdx b/docs/custom-flows/magic-links.mdx
index 0a4c41ade7..d033501121 100644
--- a/docs/custom-flows/magic-links.mdx
+++ b/docs/custom-flows/magic-links.mdx
@@ -3,8 +3,6 @@ title: Magic links
description: Learn how to authenticate or verify users with magic links.
---
-# Magic links
-
Clerk supports passwordless authentication with magic links, which lets users sign in and sign up without having to remember a password. During sign-in or sign-up, users will be asked to enter their email address. They will receive an email message with a link that can be clicked in order to complete the authentication process.
This one-click, link-based verification method is often referred to as a "magic link". The process is similar to sending a one-time code to your users but skipping the part where they have to come back to your app and enter the code. This is where the "magic" kicks in.
diff --git a/docs/custom-flows/mfa.mdx b/docs/custom-flows/mfa.mdx
index 93f927aaf8..3f263f3e0b 100644
--- a/docs/custom-flows/mfa.mdx
+++ b/docs/custom-flows/mfa.mdx
@@ -3,8 +3,6 @@ title: Multi-factor
description: Learn how to require a second step during authentication.
---
-# Multi-factor
-
Clerk supports multifactor authentication (MFA), often referred to as two-factor authentication or 2FA. By enabling MFA, you can encourage or require your users to perform a second verification check during sign-in.
The term multi-factor comes from the 3 main types of verifications:
diff --git a/docs/custom-flows/multi-session-applications.mdx b/docs/custom-flows/multi-session-applications.mdx
index e55d7f2ffe..35bff0eaf3 100644
--- a/docs/custom-flows/multi-session-applications.mdx
+++ b/docs/custom-flows/multi-session-applications.mdx
@@ -3,8 +3,6 @@ title: Build a custom multi-session flow
description: Learn how to use the Clerk API to add multi-session handling to your application.
---
-# Build a custom multi-session flow
-
This guide is for users who want to build a *custom* user interface using the Clerk API. To implement multi-session handling with a *prebuilt* UI, you should use Clerk's [` `](/docs/components/user/user-button) component.
diff --git a/docs/custom-flows/oauth-connections.mdx b/docs/custom-flows/oauth-connections.mdx
index 43ddf63a9a..a3cc12bbf7 100644
--- a/docs/custom-flows/oauth-connections.mdx
+++ b/docs/custom-flows/oauth-connections.mdx
@@ -3,8 +3,6 @@ title: OAuth connections
description: Learn how to leverage the Clerk SDK to build completely custom OAuth flows.
---
-# OAuth connections
-
In case one of our [standard OAuth integration methods](/docs/authentication/social-connections/oauth) doesn't cover your needs, you can leverage the Clerk SDK to build completely custom OAuth flows.
diff --git a/docs/custom-flows/overview.mdx b/docs/custom-flows/overview.mdx
index 2d0efe6b56..0c5e55b43b 100644
--- a/docs/custom-flows/overview.mdx
+++ b/docs/custom-flows/overview.mdx
@@ -3,8 +3,6 @@ title: Custom flows
description: Learn the process behind building custom sign-up and sign-in flows with Clerk.
---
-# Custom flows
-
A *custom flow* refers to a user flow created entirely from scratch using the Clerk API. If Clerk's [prebuilt components](/docs/components/overview) don't meet your specific needs or if you require more control over the logic, you can rebuild the existing Clerk flows using the Clerk API.
## Sign-up flow
diff --git a/docs/custom-flows/saml-connections.mdx b/docs/custom-flows/saml-connections.mdx
index 86bee57bc9..9913a010c7 100644
--- a/docs/custom-flows/saml-connections.mdx
+++ b/docs/custom-flows/saml-connections.mdx
@@ -3,8 +3,6 @@ title: SAML connections
description: Learn how to leverage the Clerk SDK to build a completely custom SAML flow.
---
-# SAML connections
-
If [the default SAML flow](/docs/authentication/saml/overview) doesn’t cover your needs, you can build a custom SAML flow with the Clerk SDK.
diff --git a/docs/custom-flows/sign-out.mdx b/docs/custom-flows/sign-out.mdx
index 9784420a38..498313bfad 100644
--- a/docs/custom-flows/sign-out.mdx
+++ b/docs/custom-flows/sign-out.mdx
@@ -3,8 +3,6 @@ title: Sign out
description: Learn how to sign-out users.
---
-# Sign out
-
Once you have a signed-in user, you need to give them a way to sign out.
Please note that the sign-out flow only deactivates the current session. Other valid sessions that correspond to the same user (e.g. if the user is signed in on another computer) will continue to work.
diff --git a/docs/custom-flows/use-sign-up.mdx b/docs/custom-flows/use-sign-up.mdx
index fc33a5d8da..44c62a5905 100644
--- a/docs/custom-flows/use-sign-up.mdx
+++ b/docs/custom-flows/use-sign-up.mdx
@@ -1,10 +1,8 @@
---
-title: useSignUp() and useSignIn()
+title: '`useSignUp()` and `useSignIn()`'
description: Learn how to use the useSignUp() and useSignIn() hooks to build a custom sign-up and sign-in flow.
---
-# `useSignUp()` and `useSignIn()`
-
If Clerk's [prebuilt components](/docs/components/overview) don't meet your specific needs or if you require more control over the authentication flow, Clerk enables you to build fully custom sign-up and sign-in flows using the [`useSignUp()`][use-signup-ref] and [`useSignIn()`][use-signin-ref] React hooks.
## `useSignUp()`
diff --git a/docs/custom-flows/user-impersonation.mdx b/docs/custom-flows/user-impersonation.mdx
index 8b740281e7..65b725fd29 100644
--- a/docs/custom-flows/user-impersonation.mdx
+++ b/docs/custom-flows/user-impersonation.mdx
@@ -3,8 +3,6 @@ title: User Impersonation
description: Learn how to sign in as another user and detect impersonated sessions.
---
-# User Impersonation
-
User Impersonation allows you to sign in as a different user in your application. It allows administrators to access and operate on an instance as if they were signed in as a different user of that instance.
User Impersonation allows one user (Alice) to interact with your application as another (Bob). For the duration of an impersonated session, the application considers Alice to be Bob. Alice is given all the rights that Bob has, and is indistinguishable from Bob in that context.
diff --git a/docs/deployments/changing-domains.mdx b/docs/deployments/changing-domains.mdx
index 826492a51a..85f584457c 100644
--- a/docs/deployments/changing-domains.mdx
+++ b/docs/deployments/changing-domains.mdx
@@ -3,8 +3,6 @@ title: Change domain or subdomain
description: Learn how to change your Clerk production instance's domain or subdomain.
---
-# Change domain or subdomain
-
Learn how to change your Clerk production instance's domain or subdomain.
diff --git a/docs/deployments/clerk-cookies.mdx b/docs/deployments/clerk-cookies.mdx
index 97bd348546..4dbe724432 100644
--- a/docs/deployments/clerk-cookies.mdx
+++ b/docs/deployments/clerk-cookies.mdx
@@ -3,8 +3,6 @@ title: Clerk Cookies
description:
---
-# Clerk Cookies
-
## Strictly Necessary Application Cookies
Clerk sets cookies when your users interact with your application in ways that trigger requests for services, such as signing in or signing up. This cannot be disabled.
diff --git a/docs/deployments/deploy-to-vercel.mdx b/docs/deployments/deploy-to-vercel.mdx
index 0fa52ad13b..719485f1ff 100644
--- a/docs/deployments/deploy-to-vercel.mdx
+++ b/docs/deployments/deploy-to-vercel.mdx
@@ -3,8 +3,6 @@ title: Deploying a Clerk app to Vercel
description: Learn how to deploy a Clerk app to Vercel.
---
-# Deploying a Clerk app to Vercel
-
Deploying a Clerk app to a Vercel project enables you to rapidly develop your applications and deploy them to production with ease.
Let's walk through the following:
diff --git a/docs/deployments/environments.mdx b/docs/deployments/environments.mdx
index 6574a24af8..37c938e8df 100644
--- a/docs/deployments/environments.mdx
+++ b/docs/deployments/environments.mdx
@@ -2,8 +2,6 @@
title: Instances / Environments
description: An overview of the differences between development and production instances.
---
-
-# Instances / Environments
When creating a new application within Clerk, you are provided with two instances: `Development` and `Production`. These instances vary slightly and should only be used appropriately.
## Development instance
diff --git a/docs/deployments/exporting-users.mdx b/docs/deployments/exporting-users.mdx
index b70f3dc19f..c57ea88940 100644
--- a/docs/deployments/exporting-users.mdx
+++ b/docs/deployments/exporting-users.mdx
@@ -1,10 +1,8 @@
---
-title: Exporting Users
+title: Export your user's data from Clerk
description: Learn how to export user's data from your Clerk application.
---
-# Export your user's data from Clerk
-
## Access user data in the backend
By using the [GetUserList](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUserList) endpoint of Clerk's Backend API, you can programmatically export your user's data safely.
diff --git a/docs/deployments/migrate-from-firebase.mdx b/docs/deployments/migrate-from-firebase.mdx
index 53d7f457f3..4b9d30faf4 100644
--- a/docs/deployments/migrate-from-firebase.mdx
+++ b/docs/deployments/migrate-from-firebase.mdx
@@ -3,8 +3,6 @@ title: Migrate from Firebase
description: Migrating your user base from Firebase to Clerk is a 2-part process that can be accomplished with just a few steps.
---
-# Migrate from Firebase
-
Migrating your user base from Firebase to Clerk is a 2-part process that can be accomplished with just a few steps.
diff --git a/docs/deployments/migrate-overview.mdx b/docs/deployments/migrate-overview.mdx
index 0878d603c8..c1b7c40665 100644
--- a/docs/deployments/migrate-overview.mdx
+++ b/docs/deployments/migrate-overview.mdx
@@ -3,8 +3,6 @@ title: Migrate to Clerk from another platform
description: Guides on how to move your user data from another authentication platform to Clerk.
---
-# Migrate to Clerk from another platform
-
There are typically two main strategies for migrating your existing user management from a different platform into Clerk:
- [Basic Export / Import](#basic-export-import)
- [Trickle migration](#trickle-migration)
diff --git a/docs/deployments/overview.mdx b/docs/deployments/overview.mdx
index fcfadc326d..a80124995b 100644
--- a/docs/deployments/overview.mdx
+++ b/docs/deployments/overview.mdx
@@ -3,8 +3,6 @@ title: Deploy your Clerk app to production
description: Learn how to deploy your Clerk app to production.
---
-# Deploy your Clerk app to production
-
Before you begin:
1. You will need to have a domain you own.
diff --git a/docs/deployments/set-up-preview-environment.mdx b/docs/deployments/set-up-preview-environment.mdx
index 222183a824..56c707fa50 100644
--- a/docs/deployments/set-up-preview-environment.mdx
+++ b/docs/deployments/set-up-preview-environment.mdx
@@ -1,9 +1,8 @@
---
+title: Set up a preview environment with Clerk
description: Learn how to set up a preview environment with Clerk authentication.
---
-# Set up a preview environment with Clerk
-
Popular hosting providers such as Cloudflare, Vercel, and more, offer preview deployments, which enable you to view changes to your site in a live environment before merging and deploying them to production.
There are two approaches to using Clerk in a preview environment:
diff --git a/docs/deployments/set-up-staging.mdx b/docs/deployments/set-up-staging.mdx
index c6b2725c31..55cf5c2beb 100644
--- a/docs/deployments/set-up-staging.mdx
+++ b/docs/deployments/set-up-staging.mdx
@@ -1,9 +1,8 @@
---
+title: Set up a staging environment with Clerk
description: Learn how to set up a staging environment with Clerk authentication.
---
-# Set up a staging environment with Clerk
-
Staging environments enable you to internally test and demo changes to your application or website before deploying them to production. Currently, Clerk only offers **Development** and **Production** instances. Official support for **Staging** instances is still on [Clerk's roadmap](https://feedback.clerk.com/roadmap/de417dd1-fa2e-4997-868f-4c9248027e7d). However, you can set up a "staging environment" by creating a separate Clerk application with a separate domain.
Creating a separate Clerk application will prevent you from using live production environment data in your staging environment. And if you are on a Pro, Enterprise, or Startup plan, **Clerk will fully upgrade your staging application for free.**
diff --git a/docs/deployments/staging-alternatives.mdx b/docs/deployments/staging-alternatives.mdx
index 7ca57fe159..36d85f2165 100644
--- a/docs/deployments/staging-alternatives.mdx
+++ b/docs/deployments/staging-alternatives.mdx
@@ -1,9 +1,7 @@
---
-description:
+title: Staging alternatives
---
-# Staging alternatives
-
## Shared production credentials
diff --git a/docs/errors/actor-tokens.mdx b/docs/errors/actor-tokens.mdx
index fec5ff27aa..38dde8fa9e 100644
--- a/docs/errors/actor-tokens.mdx
+++ b/docs/errors/actor-tokens.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to actor tokens.
type: reference
---
-# Actor token errors
-
An index of Clerk errors related to actor tokens.
## `ActorTokenRevoked`
diff --git a/docs/errors/allowlist-identifiers.mdx b/docs/errors/allowlist-identifiers.mdx
index 956723f8f0..4c13fbe9a4 100644
--- a/docs/errors/allowlist-identifiers.mdx
+++ b/docs/errors/allowlist-identifiers.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to allowlist identifiers.
type: reference
---
-# Allowlist identifiers errors
-
An index of Clerk errors related to allowlist identifiers.
## `AllowlistIdentifierNotFound`
diff --git a/docs/errors/application.mdx b/docs/errors/application.mdx
index 42625fdccb..4da2bbcb90 100644
--- a/docs/errors/application.mdx
+++ b/docs/errors/application.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to an application.
type: reference
---
-# Application errors
-
An index of Clerk errors related to an application, such as when an application is not found, or when a user tries to perform an action that they are not authorized to do.
## `ApplicationNotFound`
diff --git a/docs/errors/authentication.mdx b/docs/errors/authentication.mdx
index 3dbdff176c..577da9b801 100644
--- a/docs/errors/authentication.mdx
+++ b/docs/errors/authentication.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to authentication, such as when a
type: reference
---
-# Authentication errors
-
An index of Clerk errors related to authentication, such as when a Clerk Secret Key is invalid, or when a request is not authenticated.
## `InvalidClerkSecretKey`
diff --git a/docs/errors/backup-codes.mdx b/docs/errors/backup-codes.mdx
index 869d5909c2..dbebcc4383 100644
--- a/docs/errors/backup-codes.mdx
+++ b/docs/errors/backup-codes.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to backup codes.
type: reference
---
-# Backup code errors
-
An index of Clerk errors related to backup codes.
## `BackupCodesNotAvailable`
diff --git a/docs/errors/billing-accounts.mdx b/docs/errors/billing-accounts.mdx
index b89ec061af..ee269ccba7 100644
--- a/docs/errors/billing-accounts.mdx
+++ b/docs/errors/billing-accounts.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to billing accounts.
type: reference
---
-# Billing account errors
-
An index of Clerk errors related to billing accounts.
## `BillingAccountNotFound`
diff --git a/docs/errors/billing.mdx b/docs/errors/billing.mdx
index c9cfb33807..35a221887c 100644
--- a/docs/errors/billing.mdx
+++ b/docs/errors/billing.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to billing.
type: reference
---
-# Billing errors
-
An index of Clerk errors related to billing.
## `CheckoutLocked`
diff --git a/docs/errors/blocklist-identifiers.mdx b/docs/errors/blocklist-identifiers.mdx
index d5f57b3fb2..acea0bbd55 100644
--- a/docs/errors/blocklist-identifiers.mdx
+++ b/docs/errors/blocklist-identifiers.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to blocklist identifiers.
type: reference
---
-# Blocklist identifier errors
-
An index of Clerk errors related to blocklist identifiers.
## `DuplicateBlocklistIdentifier`
diff --git a/docs/errors/clients.mdx b/docs/errors/clients.mdx
index 85686a105b..570bf48895 100644
--- a/docs/errors/clients.mdx
+++ b/docs/errors/clients.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to a client.
type: reference
---
-# Client errors
-
An index of Clerk errors related to a client.
## `ClientNotFound`
diff --git a/docs/errors/cookie.mdx b/docs/errors/cookie.mdx
index e3ef1acc59..a0456fbcd1 100644
--- a/docs/errors/cookie.mdx
+++ b/docs/errors/cookie.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to cookies.
type: reference
---
-# Cookie errors
-
An index of Clerk errors related to cookies.
## `MissingClaims`
diff --git a/docs/errors/deprecation.mdx b/docs/errors/deprecation.mdx
index e33f30945f..71ad5c35c4 100644
--- a/docs/errors/deprecation.mdx
+++ b/docs/errors/deprecation.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to deprecation.
type: reference
---
-# Deprecation errors
-
An index of Clerk errors related to deprecation.
## `BAPIEndpointDeprecated`
diff --git a/docs/errors/domains.mdx b/docs/errors/domains.mdx
index f1b14a37b4..54c46ce74f 100644
--- a/docs/errors/domains.mdx
+++ b/docs/errors/domains.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to domains.
type: reference
---
-# Domain errors
-
An index of Clerk errors related to domains.
## `DomainNotFound`
diff --git a/docs/errors/entitlements.mdx b/docs/errors/entitlements.mdx
index 131444e9d3..8aa3deee95 100644
--- a/docs/errors/entitlements.mdx
+++ b/docs/errors/entitlements.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to entitlements.
type: reference
---
-# Entitlement errors
-
An index of Clerk errors related to entitlements.
## `FormInvalidEntitlementKey`
diff --git a/docs/errors/features.mdx b/docs/errors/features.mdx
index 10eeb744c3..5976399204 100644
--- a/docs/errors/features.mdx
+++ b/docs/errors/features.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to features.
type: reference
---
-# Feature errors
-
An index of Clerk errors related to features.
## `FeatureNotEnabled`
diff --git a/docs/errors/identifications.mdx b/docs/errors/identifications.mdx
index a4e00a19c1..b51876855d 100644
--- a/docs/errors/identifications.mdx
+++ b/docs/errors/identifications.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to identification, such as phone n
type: reference
---
-# Identification errors
-
An index of Clerk errors related to identification, such as phone numbers and email addresses.
## `IdentificationNotFound`
diff --git a/docs/errors/overview.mdx b/docs/errors/overview.mdx
index fe81b62edd..bbad7571eb 100644
--- a/docs/errors/overview.mdx
+++ b/docs/errors/overview.mdx
@@ -3,8 +3,6 @@ title: Errors overview
description: A breakdown of all Clerk's errors.
---
-# Errors overview
-
Clerk uses a set of error codes to communicate the status of an operation.
An error's type is not always enough to understand what went wrong. In these cases, Clerk provides a more detailed error message that can help you understand the issue. Select the appropriate category in the sidebar to see the list of errors and their descriptions.
diff --git a/docs/errors/sign-in-tokens.mdx b/docs/errors/sign-in-tokens.mdx
index bc20c49979..5ec3ca2007 100644
--- a/docs/errors/sign-in-tokens.mdx
+++ b/docs/errors/sign-in-tokens.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to sign in tokens.
type: reference
---
-# Sign in token errors
-
An index of Clerk errors related to sign in tokens.
## `SignInTokenRevoked`
diff --git a/docs/errors/sign-in.mdx b/docs/errors/sign-in.mdx
index cdd2eed42c..2f52332016 100644
--- a/docs/errors/sign-in.mdx
+++ b/docs/errors/sign-in.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to sign-in.
type: reference
---
-# Sign-in errors
-
An index of Clerk errors related to sign-in.
## `SingleModeSessionExists`
diff --git a/docs/errors/sign-up.mdx b/docs/errors/sign-up.mdx
index 5d1958b389..553f863670 100644
--- a/docs/errors/sign-up.mdx
+++ b/docs/errors/sign-up.mdx
@@ -4,8 +4,6 @@ description: An index of Clerk errors related to sign-up.
type: reference
---
-# Sign-up errors
-
An index of Clerk errors related to sign-up.
## `SignUpNotFound`
diff --git a/docs/guides/add-onboarding-flow.mdx b/docs/guides/add-onboarding-flow.mdx
index ebd69ae771..134f005a1f 100644
--- a/docs/guides/add-onboarding-flow.mdx
+++ b/docs/guides/add-onboarding-flow.mdx
@@ -3,8 +3,6 @@ title: Add custom onboarding to your authentication flow
description: Leverage Clerk’s customizable session tokens, public metadata, and Middleware to create a robust onboarding experience.
---
-# Add custom onboarding to your authentication flow
-
Onboarding is a crucial part of many authentication flows. Sometimes you need to make sure certain criteria is met and collected before allowing access to parts of your application. With Clerk, you can leverage customizable session tokens, public metadata, and Middleware to create a custom onboarding experience.
This guide demonstrates how to create a custom onboarding flow that requires users to complete a form before they can access the application. After a user authenticates using Clerk's [Account portal](/docs/account-portal/overview), the user is prompted to fill out a form with an application name and type. Once the user has completed the form, they are redirected to the application's homepage.
diff --git a/docs/guides/authjs-migration.mdx b/docs/guides/authjs-migration.mdx
index 09221cd390..7945aeb228 100644
--- a/docs/guides/authjs-migration.mdx
+++ b/docs/guides/authjs-migration.mdx
@@ -3,8 +3,6 @@ title: Migrate from Auth.js to Clerk
description: Learn how to migrate an application using Auth.js to use Clerk for authentication.
---
-# Migrate from Auth.js to Clerk
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+Find all the guides and resources you need to develop with Clerk.
+
+
+
+- [Quickstarts & Tutorials](/docs/quickstarts/overview)
+- Explore our end-to-end tutorials and getting started guides for different application stacks using Clerk.
+- { }
+
+---
+
+- [UI Components](/docs/components/overview)
+- Clerk's pre-built UI components give you a beautiful, fully-functional user management experience in minutes.
+- { }
+
+---
+
+- [API Reference](/docs/references/overview)
+- Dig into our API reference documentation and SDKs. We have everything you need to get started setting up authentication with Clerk.
+- { }
+
+---
+
+- [Security](/docs/security/overview)
+- Account security is the top concern of every feature we build. This documentation lists some of the many protections included with Clerk.
+- { }
+
+
+
+## Explore by frontend framework
+
+
+
+- [Next.js](/docs/quickstarts/nextjs)
+- Easily add secure, beautiful, and fast authentication to Next.js with Clerk.
+- { }
+
+---
+
+- [React](/docs/quickstarts/react)
+- Get started installing and initializing Clerk in a new Create React App.
+- { }
+
+---
+
+- [Remix](/docs/quickstarts/remix)
+- Easily add secure, edge- and SSR-friendly authentication to Remix with Clerk.
+- { }
+
+---
+
+- [Gatsby](/docs/quickstarts/gatsby)
+- Learn about installing and initializing Clerk in a new Gatsby application.
+- { }
+
+---
+
+- [RedwoodJS](/docs/references/redwood/overview)
+- Grow your RedwoodJS application with Clerk user management and authentication.
+- { }
+
+---
+
+- [React Native / Expo](/docs/quickstarts/expo)
+- Use Clerk with Expo to authenticate users in your React Native application.
+- { }
+
+
+
+## Explore by backend framework
+
+
+
+- [Node / Express](/docs/references/nodejs/overview)
+- Quickly add authentication and user management to your Node.js application.
+- { }
+
+---
+
+- [Ruby on Rails](/docs/references/ruby/overview)
+- Integrate user management and authentication into your Ruby application.
+- { }
+
+---
+
+- [SDKs](/docs/references/overview)
+- Clerk's SDKs allow you to call the Clerk server API without having to implement the calls yourself.
+- { }
+
+
+
+## Explore by feature
+
+
+
+- [Authentication](/docs/authentication/overview)
+- Clerk supports multiple authentication strategies so you can implement the strategy that makes sense for your users.
+- { }
+
+---
+
+- [User management](/docs/users/overview)
+- Complete user management. Add sign up, sign in, and profile management to your application in minutes.
+- { }
+
+---
+
+- [Database integrations](/docs/integrations/overview)
+- Enable Clerk-managed users to authenticate and interact directly with your database with Clerk's integrations.
+- { }
+
+---
+
+- [Customization](/docs/components/customization/overview)
+- Clerk's components can be customized to match the look and feel of your application.
+- { }
+
+---
+
+- [Organizations](/docs/organizations/overview)
+- Organizations are shared accounts, useful for project and team leaders. Members with elevated privileges can manage member access to the organization's data and resources.
+- { }
+
+
+
+## Learn the concepts
+
+
+
+- [What is Clerk authentication?](/docs/authentication/overview)
+- Clerk offers multiple authentication strategies to identify legitimate users of your appication, and to allow them to make authenticated requests to your backend.
+- ![](/docs/images/home/what-is-clerk.png){{ dark: '/docs/images/home/what-is-clerk-dark.png' }}
+
+---
+
+- [What is the “User” object?](/docs/users/overview)
+- The User object contains all account information that describes a user of your app in Clerk. Users can authenticate and manage their accounts, update their personal and contact info, or set up security features for their accounts.
+- ![](/docs/images/home/user-object.png){{ dark: '/docs/images/home/user-object-dark.png' }}
+
+---
+
+- [How do organizations work?](/docs/organizations/overview)
+- Organizations allow members to collaborate across shared resources. Each member of an organization needs to have a user account in your application. All organization members have access to most of the organization resources, but some members can take advantage of administrative features.
+- ![](/docs/images/home/organizations.png){{ dark: '/docs/images/home/organizations-dark.png' }}
+
+
+
+
+
+- [Join our Discord](/discord 'Join Discord')
+- Join our official Discord server to chat with us directly and become a part of the Clerk community.
+- { }
+
+---
+
+- [Need help?](/support 'Get help')
+- Contact us through Discord, Twitter, or email to receive answers to your questions and learn more about Clerk.
+- { }
+
+
\ No newline at end of file
diff --git a/docs/integrations/analytics/google-analytics.mdx b/docs/integrations/analytics/google-analytics.mdx
index 8f5df27461..c576ff6eea 100644
--- a/docs/integrations/analytics/google-analytics.mdx
+++ b/docs/integrations/analytics/google-analytics.mdx
@@ -3,8 +3,6 @@ title: Enable Google Analytics for Clerk
description: Enable Clerk with Google Analytics to authenticate requests to your application.
---
-# Enable Google Analytics for Clerk
-
This integration enables Clerk to send user authentication events to the configured Google Analytics property which corresponds to your application.
diff --git a/docs/integrations/databases/convex.mdx b/docs/integrations/databases/convex.mdx
index a2d25d709b..aafe0dff1e 100644
--- a/docs/integrations/databases/convex.mdx
+++ b/docs/integrations/databases/convex.mdx
@@ -3,8 +3,6 @@ title: Integrate Convex with Clerk
description: Learn how to integrate Clerk into your Convex application.
---
-# Integrate Convex with Clerk
-
+
+- [Firebase](/docs/integrations/databases/firebase)
+- Clerk integrates directly with Firebase, a popular Platform-as-a-Service (PaaS) provider, so developers can easily add our beautiful Sign Up, Sign In, and User Profile UIs to their Firebase application.
+- { }
+
+---
+
+- [Supabase](/docs/integrations/databases/supabase)
+- Clerk embraces the open source alternative to Firebase and provides an integration to Supabase with our JSON Web Tokens (JWT) Templates feature.
+- { }
+
+---
+
+- [Hasura](/docs/integrations/databases/hasura)
+- Easily connect to your Hasura GraphQL endpoint using Clerk as your authentication provider.
+- { }
+
+---
+
+- [Fauna](/docs/integrations/databases/fauna)
+- Build applications using Fauna, the distributed document-relational database, with Clerk as your authentication provider.
+- { }
+
+---
+
+- [Grafbase](/docs/integrations/databases/grafbase)
+- Build applications with serverless GraphQL backends provided by Grafbase and user authencation provided by Clerk.
+- { }
+
+---
+
+- [Nhost](/docs/integrations/databases/nhost)
+- The open source alternative to Firebase with GraphQL seemlessly integrates with Clerk to provide authenticated queries.
+- { }
+
+---
+
+- [Convex](/docs/integrations/databases/convex)
+- Clerk integrates with Convex, the serverless state management platform, using our JSON Web Tokens (JWT) Templates feature.
+- { }
+
+---
+
+- [Google Analytics](/docs/integrations/analytics/google-analytics)
+- Send user authentication events to your Google Analytics property to enable metrics tracking on user sign up and sign in events.
+- { }
+
+---
+
+- [Inngest](/docs/integrations/webhooks/inngest)
+- Use events from Clerk to trigger functions defined in your codebase with Inngest. Easily handle data synchronization, onboarding campaigns, or billing workflows in code.
+- ![](data:image/webp;base64,UklGRh4EAABXRUJQVlA4WAoAAAAQAAAAPwAAPwAAQUxQSCsBAAABgGPbttrmrd+p+6VqlV5/GqHKy2WwM7ZsV2G1nkmYORpBmJmZGV5I8J8pVETEBIBcT9/9veFhkKFMGPilITKD69dorvMM8K6g5XUvNdGHtg1BiSfRyfukSoV5V9DhdS8N0YoS+4Q8JY1y79OqJPcpSl/3yBDdSNIQDjGunyLRa111xD2BhNc9zJY2gcQNYY1FkP5lklmJYEZ6LainmXGvmNVghnrNajMl+e2T+D+sJlPKzZTnzNjjZuDLjBBYZOGjDAgxKwDaCLUhFWyXzVGaLQMned0lvtI4TXFw2NVBo1UDiWXL8raLQC5vvpSkM5DMQOuQ0aIByfI1pxaqGRBVw47cpDgQ1jrstWhAvHza2kI10FfqLNykFMhI19BXfS7IVFbUd3PTVwRyAQBWUDggzAIAAFAPAJ0BKkAAQAA+bSyQRb+ioZgLBn34BsS2NhOjmcG42OcWxB5zzRbd/dPwjyhVt/Ej6ZfmA/Yb9gPeH6QD+8ei56lfoAeWZ+tfwVfuR+2HtMtEDSBM1kzDpLxf/u+uW/v4piORnc5jdBlHICkQIbU3Q9Rw1Zv+uCAbrW6IG1df/8EAAP7qGh/9l4pVVBFh+rUY1hy2oGoQV6VGbRHBB2iO0tH/tfH1yRzR3C0HtWw52pZ0QY3Z/vV9q0pqPxK/4/lkfqd2FNP7c15rLCwA8JOvCrqUwq06o83BkZP1MFUdnpr2V8QfIhwktF8gJKTzekh0l7+/J3/8Yi1u5rwesYJlTUDJaZxeZ0/QyaSj7PbEmRwoKia7uNMXgW9sCo+LA7cRYi69D1+QB3yCR8SxVeuahEJAN3IAVOiUwzBeniXMzc5T8B9e5IRgPrynbpSBzCUDWb473yJev7dzLbFtmzFn/234VUeDew/CTEy7fXMomgYBxRubyPU2Os+UNxy8j9+kG1qXNRuPnoCCFf7eempoK9f64lDFekVGNfaP0FMN0yI9fXJBMR6LzLIQ284yBv9SZqJR9yHk9vnwcr+2bcZY+fYRnwm7ed7tJWvWNG/aOZm4ixfPARv8bEWp8DBlrSSNM0fP8eK9AS6LrhQR4cIVsezbBjAAlJ0xwriFeai5RHah1NpMj1I1V6MvEtL8cyoBRz1k492Yo9Nkejreud7UO/yuLM4D1p4btGlGKDTRLgeZPVj9+RDUFTMl8CYLf9V/Wz/4xh/8jFCrLaD3wHlLZ+Wb8PD58Tmzvmvw1gSFiLOt6tdsX0DR5Nov5r6abhM8je+r0W5wX2KGXS/q+a6XpKSVE+mm49uS4cjDWPste4EBGZhmVfnH62FO6za+oovV0UW4rF8TTGp60bC3uj7wnfm6xh7FRW+BBTpGQRbGJMgbchuEdsEhgAAA)
+
+
+
+
+
+- [Join our Discord](/discord 'Join Discord')
+- Join our official Discord server to chat with us directly and become a part of the Clerk community.
+- { }
+
+---
+
+- [Need help?](/support 'Get help')
+- Contact us through Discord, Twitter, or email to receive answers to your questions and learn more about Clerk.
+- { }
+
+
\ No newline at end of file
diff --git a/docs/integrations/webhooks/inngest.mdx b/docs/integrations/webhooks/inngest.mdx
index 23d778c3a1..4134b146ef 100644
--- a/docs/integrations/webhooks/inngest.mdx
+++ b/docs/integrations/webhooks/inngest.mdx
@@ -3,8 +3,6 @@ title: Handling webhooks with Inngest
description: Learn how to integrate Clerk with Inngest.
---
-# Handling webhooks with Inngest
-
Webhooks allow you to [synchronize data](/docs/integrations/webhooks/sync-data) from Clerk to your application backend. You can either handle them directly in your backend with an endpoint or use a tool like [Inngest](https://inngest.com/) which receives the webhook events for you and reliably executes functions in your codebase. When handling webhooks, Inngest receives the [webhook events](/docs/integrations/webhooks/overview#supported-webhook-events) for you and uses a built-in queue to reliably execute longer running functions with additional functionality including:
* [Limiting concurrency](https://www.inngest.com/docs/guides/concurrency) to handle spikes in events without overwhelming your API or database.
diff --git a/docs/integrations/webhooks/overview.mdx b/docs/integrations/webhooks/overview.mdx
index 55eacaa1a7..d34c8f2f70 100644
--- a/docs/integrations/webhooks/overview.mdx
+++ b/docs/integrations/webhooks/overview.mdx
@@ -3,8 +3,6 @@ title: Webhooks overview
description: Clerk webhooks allow you to receive event notifications from Clerk. Clerk will send a POST request to a URL you specify when certain events happen in your Clerk account.
---
-# Webhooks overview
-
Clerk webhooks allow you to receive event notifications from Clerk. Clerk will send a `POST` request to a URL you specify when certain events happen in your Clerk account.
Clerk uses [Svix](https://svix.com/) to send our webhooks.
diff --git a/docs/integrations/webhooks/sync-data.mdx b/docs/integrations/webhooks/sync-data.mdx
index c5cb96b26c..fa5b531f98 100644
--- a/docs/integrations/webhooks/sync-data.mdx
+++ b/docs/integrations/webhooks/sync-data.mdx
@@ -3,8 +3,6 @@ title: Sync Clerk data to your backend with webhooks
description: The recommended way to sync data between Clerk and your application's backend is via webhooks. In this guide you'll learn how to enable webhooks and how to set up your backend so that it is updated every time an event happens on your Clerk instance.
---
-# Sync Clerk data to your backend with webhooks
-
A common set up for applications involves a frontend for customers to interact with a backend that includes a database. Since authentication and user management happens on Clerk's side, data eventually needs to reach the application's backend.
The recommended way to sync data between Clerk and your application's backend is via webhooks. In this guide, you'll learn how to enable webhooks and how to set up your backend so that it is updated every time an event happens on your Clerk instance.
diff --git a/docs/manifest.json b/docs/manifest.json
index 988c92b1b5..27d029207c 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -1,983 +1,2351 @@
-[
- [{ "title": "Home", "icon": "home" }, "/"],
- "# Learning",
- [
- {
- "title": "Quickstarts",
- "icon": "lightning-bolt",
- "root": "quickstarts"
- },
+{
+ "navigation": [
[
- ["Overview", "/quickstarts/overview"],
- ["Set up Clerk", "/quickstarts/setup-clerk"],
- "# Full Stack",
- ["Next.js", "/quickstarts/nextjs"],
- ["Remix", "/quickstarts/remix"],
- ["Gatsby", "/quickstarts/gatsby"],
- "# Frontend",
- ["JavaScript", "/quickstarts/javascript"],
- ["React", "/quickstarts/react"],
- ["Expo", "/quickstarts/expo"],
- "# Backend",
- ["Fastify", "/quickstarts/fastify"]
- ]
- ],
- [
- {
- "title": "Guides",
- "icon": "book-open",
- "root": "guides"
- },
- [
- ["Overview", "/guides/overview"],
- ["Add custom onboarding to your authentication flow", "/guides/add-onboarding-flow"],
- ["Transferring ownership of your App", "/guides/transferring-your-app"],
- ["Use image optimization to improve app performance", "/guides/image-optimization/imageurl-image-optimization"],
- ["Implement basic Role Based Access Control with metadata", "/guides/basic-rbac"],
- ["Hide Personal Accounts and force organizations", "/guides/force-organizations"],
- ["Migrating to Clerk from Auth.js", "/guides/authjs-migration"]
- ]
- ],
- "---",
- [
- {
- "title": "Sign Up & Sign In",
- "icon": "sign-in",
- "root": "authentication"
- },
- [
- ["Overview", "/authentication/overview"],
- "# Configuration",
- ["Sign-up and sign-in options", "/authentication/configuration/sign-up-sign-in-options"],
- ["Session options", "/authentication/configuration/session-options"],
- ["Email & SMS templates", "/authentication/configuration/email-sms-templates"],
- ["Restrictions", "/authentication/configuration/restrictions"],
- "# Prebuilt Components",
- [" ", "https://clerk.com/docs/components/authentication/sign-in"],
- [" ", "https://clerk.com/docs/components/authentication/sign-up"],
- "# Social Connections",
- ["Overview", "/authentication/social-connections/overview"],
- [
- "Social connections (OAuth)",
- "/authentication/social-connections/oauth"
- ],
- ["Account linking", "/authentication/social-connections/account-linking"],
- ["Google", "/authentication/social-connections/google"],
- ["Facebook", "/authentication/social-connections/facebook"],
- ["Microsoft", "/authentication/social-connections/microsoft"],
- [
- { "title": "See all" },
- [
- ["Apple", "/authentication/social-connections/apple"],
- ["Atlassian", "/authentication/social-connections/atlassian"],
- ["Bitbucket", "/authentication/social-connections/bitbucket"],
- ["Box", "/authentication/social-connections/box"],
- ["Coinbase", "/authentication/social-connections/coinbase"],
- ["Discord", "/authentication/social-connections/discord"],
- ["Dropbox", "/authentication/social-connections/dropbox"],
- ["GitHub", "/authentication/social-connections/github"],
- ["GitLab", "/authentication/social-connections/gitlab"],
- ["Google", "/authentication/social-connections/google"],
- ["HubSpot", "/authentication/social-connections/hubspot"],
- ["Line", "/authentication/social-connections/line"],
- ["Linear", "/authentication/social-connections/linear"],
- ["LinkedIn (Deprecated)", "/authentication/social-connections/linkedin"],
- ["LinkedIn", "/authentication/social-connections/linkedin-oidc"],
- ["Notion", "/authentication/social-connections/notion"],
- ["Slack", "/authentication/social-connections/slack"],
- ["Spotify", "/authentication/social-connections/spotify"],
- ["TikTok", "/authentication/social-connections/tiktok"],
- ["Twitter v1", "/authentication/social-connections/twitter"],
- ["X/Twitter v2", "/authentication/social-connections/x-twitter"],
- ["Xero", "/authentication/social-connections/xero/"]
- ]
- ],
- "# SAML",
- ["Overview", "/authentication/saml/overview"],
- ["Authentication flows", "/authentication/saml/authentication-flows"],
- ["Account linking", "/authentication/saml/account-linking"],
- ["Azure", "/authentication/saml/azure"],
- ["Google", "/authentication/saml/google"],
- ["Okta", "/authentication/saml/okta"],
- ["Custom provider", "/authentication/saml/custom-provider"]
- ]
- ],
- [
- {
- "title": "Users",
- "icon": "user",
- "root": "users"
- },
- [
- ["Overview", "/users/overview"],
- ["Metadata", "/users/metadata"],
- ["Deleting users", "/users/deleting-users"],
- "# Prebuilt Components",
- [" ", "https://clerk.com/docs/components/user/user-button"],
- [" ", "https://clerk.com/docs/components/user/user-profile"],
- "# Guides",
- ["Web3 authentication", "/users/web3"]
- ]
- ],
- [
- { "title": "Organizations, Roles, and Permissions", "icon": "user-group", "root": "organizations" },
- [
- ["Overview", "/organizations/overview"],
- ["Roles and permissions", "/organizations/roles-permissions"],
- "# Prebuilt Components",
- [" ", "https://clerk.com/docs/components/organization/create-organization"],
- [" ", "https://clerk.com/docs/components/organization/organization-profile"],
- [" ", "https://clerk.com/docs/components/organization/organization-switcher"],
- [" ", "https://clerk.com/docs/components/organization/organization-list"],
- ["", "https://clerk.com/docs/components/protect"],
- "# Guides",
- ["Create roles and assign permissions", "/organizations/create-roles-permissions"],
- ["Verify the active user’s permissions", "/organizations/verify-user-permissions"],
- ["Reassign the creator role", "/organizations/creator-role"],
- "# Building custom flows",
- ["Using metadata", "/organizations/metadata"],
- ["Creating organizations", "/organizations/creating-organizations"],
- ["Updating organizations", "/organizations/updating-organizations"],
- ["Inviting users", "/organizations/inviting-users"],
- ["Managing roles", "/organizations/managing-roles"],
- ["Viewing memberships", "/organizations/viewing-memberships"],
- ["Create a custom organization switcher", "/organizations/custom-organization-switcher"],
- ["Verified domains", "/organizations/verified-domains"]
- ]
- ],
- [
- {
- "title": "Backend Requests",
- "icon": "request-authentication",
- "root": "backend-requests"
- },
- [
- ["Overview", "/backend-requests/overview"],
- "# Making requests",
- ["Same-Origin Requests", "/backend-requests/making/same-origin"],
- ["Cross-Origin Requests", "/backend-requests/making/cross-origin"],
- [
- "Customize your session token",
- "/backend-requests/making/custom-session-token"
- ],
- ["JWT Templates", "/backend-requests/making/jwt-templates"],
- "# Handling requests",
- ["Node.js & Express", "/backend-requests/handling/nodejs"],
- ["Go", "/backend-requests/handling/go"],
- ["Gatsby", "/backend-requests/handling/gatsby"],
- ["Ruby / Rails", "/backend-requests/handling/ruby-rails"],
- ["Manual JWT Verification", "/backend-requests/handling/manual-jwt"],
- "# Versioning",
- ["Overview", "/backend-requests/versioning/overview"],
- ["Available versions", "/backend-requests/versioning/available-versions"],
- "# Resources",
- ["Session tokens", "/backend-requests/resources/session-tokens"],
- ["Rate limits", "/backend-requests/resources/rate-limits"]
- ]
- ],
- "---",
- [
- {
- "title": "Account Portal",
- "icon": "cloud",
- "root": "account-portal"
- },
- [
- ["Overview", "/account-portal/overview"],
- ["Getting started", "/account-portal/getting-started"],
-
- "# Advanced Usage",
- ["Custom redirects", "/account-portal/custom-redirects"],
- ["Direct links", "/account-portal/direct-links"],
- ["User & Organization Pages","/account-portal/user-profile-org-profile"],
- ["Disable Account Portal","/account-portal/disable-account-portal"]
- ]
- ],
- [
- {
- "title": "Component Reference",
- "icon": "rectangle-group",
- "root": "components"
- },
- [
- ["Overview", "/components/overview"],
- ["", "/components/clerk-provider"],
- "# Authentication Components",
- [" ", "/components/authentication/sign-in"],
- [" ", "/components/authentication/sign-up"],
-
- "# User Components",
- [" ", "/components/user/user-button"],
- [" ", "/components/user/user-profile"],
-
- "# Organization Components",
- [" ", "/components/organization/create-organization"],
- [
- " ",
- "/components/organization/organization-profile"
- ],
- [
- " ",
- "/components/organization/organization-switcher"
- ],
- [
- " ",
- "/components/organization/organization-list"
- ],
-
- "# Customization",
- [
- { "title": "Appearance prop" },
- [
- ["Overview", "/components/customization/overview"],
- ["Layout", "/components/customization/layout"],
- ["Themes", "/components/customization/themes"],
- ["Variables", "/components/customization/variables"]
- ]
- ],
- ["Localization prop (i18n)", "/components/customization/localization"],
- [
- { "title": "Custom Pages" },
- [
- [" ", "/components/customization/user-profile"],
- [" ", "/components/customization/organization-profile"]
- ]
- ],
- "# Control Components",
- [
- " ",
- "/components/control/authenticate-with-callback"
- ],
- ["", "/components/control/clerk-loaded"],
- ["", "/components/control/clerk-loading"],
- ["", "/components/protect"],
- ["", "/components/control/multi-session"],
- [" ", "/components/control/redirect-to-signin"],
- [" ", "/components/control/redirect-to-signup"],
- [
- " ",
- "/components/control/redirect-to-userprofile"
- ],
- [
- " ",
- "/components/control/redirect-to-organizationprofile"
- ],
- [
- " ",
- "/components/control/redirect-to-createorganization"
- ],
- ["", "/components/control/signed-in"],
- ["", "/components/control/signed-out"],
- "# Unstyled Components",
- ["", "/components/unstyled/sign-in-button"],
- [
- "",
- "/components/unstyled/sign-in-with-metamask"
- ],
- ["", "/components/unstyled/sign-up-button"],
- ["", "/components/unstyled/sign-out-button"]
- ]
- ],
- [
- {
- "title": "Custom Flows",
- "icon": "wrench-screwdriver",
- "root": "custom-flows"
- },
- [
- ["Overview", "/custom-flows/overview"],
- ["useSignUp() and useSignIn()", "/custom-flows/use-sign-up"],
- ["Email & Password", "/custom-flows/email-password"],
- ["Email / SMS OTP", "/custom-flows/email-sms-otp"],
- ["Magic links", "/custom-flows/magic-links"],
- ["Multifactor", "/custom-flows/mfa"],
- ["OAuth Connections", "/custom-flows/oauth-connections"],
- ["SAML Connections", "/custom-flows/saml-connections"],
- ["Forgot Password", "/custom-flows/forgot-password"],
- ["Sign out", "/custom-flows/sign-out"],
- ["User Impersonation", "/custom-flows/user-impersonation"],
- ["Invitations", "/custom-flows/invitations"],
- ["Embedded Magic Links", "/custom-flows/embedded-magic-links"],
- [
- "Multi-session applications",
- "/custom-flows/multi-session-applications"
- ],
- ["Error handling", "/custom-flows/error-handling"]
- ]
- ],
- "---",
- [
- { "title": "Integrations", "icon": "puzzle", "root": "integrations" },
- [
- ["Overview", "/integrations/overview"],
- "# Webhooks",
- ["Overview", "/integrations/webhooks/overview"],
- ["Sync Clerk data to your backend with webhooks", "/integrations/webhooks/sync-data"],
- ["Handling webhooks with Inngest", "/integrations/webhooks/inngest"],
- "# Databases",
- ["Convex", "/integrations/databases/convex"],
- ["Fauna", "/integrations/databases/fauna"],
- ["Firebase", "/integrations/databases/firebase"],
- ["Grafbase", "/integrations/databases/grafbase"],
- ["Hasura", "/integrations/databases/hasura"],
- ["Nhost", "/integrations/databases/nhost"],
- ["Supabase", "/integrations/databases/supabase"],
- "# Analytics",
- ["Google Analytics", "/integrations/analytics/google-analytics"]
- ]
- ],
- [
- {
- "title": "Deployments & Migrations",
- "icon": "rocket",
- "root": "deployments"
- },
- [
- ["Instances / Environments", "/deployments/environments"],
- "# Deployment",
- ["Deploy to production", "/deployments/overview"],
- ["Deploy to Vercel", "/deployments/deploy-to-vercel"],
- ["Set up a staging environment", "/deployments/set-up-staging"],
- ["Set up a preview environment", "/deployments/set-up-preview-environment"],
- ["Changing domains", "/deployments/changing-domains"],
- "# Migrations",
- ["Migrate to Clerk", "/deployments/migrate-overview"],
- ["Migrate from Firebase", "/deployments/migrate-from-firebase"],
- ["Exporting user data", "/deployments/exporting-users"],
- "# Cookie Information",
- ["Clerk Cookie Information", "/deployments/clerk-cookies"]
- ]
- ],
- [
- { "title": "Testing", "icon": "beaker", "root": "testing" },
- [
- ["Overview", "/testing/overview"],
- ["Test Emails and Phones", "/testing/test-emails-and-phones"],
- "# Testing Frameworks",
- ["Cypress", "/testing/cypress"],
- ["Postman or Insomnia", "/testing/postman-or-insomnia"]
- ]
- ],
- [
- {
- "title": "Advanced Usage",
- "icon": "calculator",
- "root": "advanced-usage"
- },
- [
- ["Clerk as an OAuth2 Provider", "/advanced-usage/clerk-idp"],
- ["Adding Satellite Domains", "/advanced-usage/satellite-domains"],
- ["Proxying the Clerk Frontend API", "/advanced-usage/using-proxies"]
- ]
- ],
- [
- {
- "title": "Error Handling",
- "icon": "support",
- "root": "errors"
- },
- [
- ["Overview", "/errors/overview"],
- ["Actor tokens", "/errors/actor-tokens"],
- ["Allowlist identifiers", "/errors/allowlist-identifiers"],
- ["Application", "/errors/application"],
- ["Authentication", "/errors/authentication"],
- ["Backup codes", "/errors/backup-codes"],
- ["Billing", "/errors/billing"],
- ["Billing accounts", "/errors/billing-accounts"],
- ["Blocklist identifiers", "/errors/blocklist-identifiers"],
- ["Clients", "/errors/clients"],
- ["Cookie", "/errors/cookie"],
- ["Deprecation", "/errors/deprecation"],
- ["Domains", "/errors/domains"],
- ["Entitlements", "/errors/entitlements"],
- ["Features", "/errors/features"],
- ["Identifications", "/errors/identifications"],
- ["Sign-in", "/errors/sign-in"],
- ["Sign-up", "/errors/sign-up"],
- ["Sign-in-tokens", "/errors/sign-in-tokens"]
- ]
- ],
- [
- {
- "title": "Troubleshooting",
- "icon": "support",
- "root": "troubleshooting"
- },
- [
- ["Overview", "/troubleshooting/overview"],
- ["Email Deliverability", "/troubleshooting/email-deliverability"],
- ["Script Loading", "/troubleshooting/script-loading"],
- "# Help & Support",
- ["Create a minimal reproduction", "/troubleshooting/create-a-minimal-reproduction"],
- ["Community Discord", "https://clerk.com/discord"],
- ["Contact Support", "https://clerk.com/support"]
- ]
- ],
- [
- {
- "title": "Upgrade Guides",
- "icon": "arrow-circle-up",
- "root": "upgrade-guides"
- },
- [
- ["Long Term Support Policy", "/upgrade-guides/long-term-support"],
- ["API Key Changes", "/upgrade-guides/api-keys"],
- ["URL-based session syncing", "/upgrade-guides/url-based-session-syncing"],
- ["Progressive Sign up", "/upgrade-guides/progressive-sign-up"],
- "# Upgrade to V3",
- ["Introduction", "/upgrade-guides/v3-introduction"],
- ["Client-side changes", "/upgrade-guides/v3-client-side-changes"],
- [
- "Next.js server-side changes",
- "/upgrade-guides/v3-nextjs-server-side-changes"
- ],
- [
- "Express server-side changes",
- "/upgrade-guides/v3-express-server-side-changes"
- ]
- ]
- ],
- [
- {
- "title": "Security",
- "icon": "lock-closed",
- "root": "security"
- },
- [
- ["Overview", "/security/overview"],
- [
- "Vulnerability disclosure policy",
- "/security/vulnerability-disclosure-policy"
- ],
- ["XSS leak protection", "/security/xss-leak-protection"],
- ["CSRF protection", "/security/csrf-protection"],
- ["Fixation protection", "/security/fixation-protection"],
- ["Password protection and rules", "/security/password-protection"],
- "# Protect accounts from attacks",
- ["Brute force attacks and locking user accounts","/security/user-lock-guide"],
- ["Customize max sign-in attempts and duration of of user lockout", "/security/customize-user-lockout"],
- ["Unlock accounts from the Clerk Dashboard", "/security/unlock-user-accounts"],
- ["Programmatically lock and unlock accounts", "/security/programmatically-lock-user-accounts"]
- ]
- ],
- "# SDK References",
- [
- { "title": "Next.js", "icon": "nextjs", "root": "references/nextjs" },
- [
- ["Overview", "/references/nextjs/overview"],
- "# Guides",
- ["Read session and user data", "/references/nextjs/read-session-data"],
- ["Add custom sign up and sign in pages", "/references/nextjs/custom-signup-signin-pages"],
- ["Integrate Clerk into your app with tRPC", "/references/nextjs/trpc"],
- ["Use Clerk with Next.js 12 and older", "/references/nextjs/usage-with-older-versions"],
- "# App Router References",
- ["auth()", "/references/nextjs/auth"],
- ["currentUser()", "/references/nextjs/current-user"],
- ["Route Handlers", "/references/nextjs/route-handlers"],
- ["Server Actions", "/references/nextjs/server-actions"],
- "# Pages Router References",
- ["getAuth()", "/references/nextjs/get-auth"],
- ["buildClerkProps()", "/references/nextjs/build-clerk-props"],
- "# Other References",
- ["Auth Object", "/references/nextjs/auth-object"],
- ["authMiddleware()", "/references/nextjs/auth-middleware"],
- "# Deprecated",
- ["withClerkMiddleware()", "/references/nextjs/with-clerk-middleware"],
- "# Demo Repositories",
- ["App Router Demo Repo", "https://github.com/clerk/clerk-nextjs-demo-app-router"],
- ["Pages Router Demo Repo", "https://github.com/clerk/clerk-nextjs-demo-pages-router"]
- ]
- ],
- [
- { "title": "React", "icon": "react", "root": "references/react" },
- [
- ["Overview", "/references/react/overview"],
- "# Guides",
- ["Add React Router", "/references/react/add-react-router"],
- "# Client-side Helpers",
- ["useUser()", "/references/react/use-user"],
- ["useClerk()", "/references/react/use-clerk"],
- ["useAuth()", "/references/react/use-auth"],
- ["useSignIn()", "/references/react/use-sign-in"],
- ["useSignUp()", "/references/react/use-sign-up"],
- ["useSession()", "/references/react/use-session"],
- ["useSessionList()", "/references/react/use-session-list"],
- ["useOrganization()", "/references/react/use-organization"],
- ["useOrganizationList()", "/references/react/use-organization-list"]
- ]
- ],
- [
- {
- "title": "JavaScript",
- "icon": "javascript",
- "root": "references/javascript"
- },
- [
- ["Overview", "/references/javascript/overview"],
- [
- { "title": "Clerk" },
- [
- ["Clerk class", "/references/javascript/clerk/clerk"],
- [
- "Organization methods",
- "/references/javascript/clerk/organization-methods"
- ],
- ["Redirect methods", "/references/javascript/clerk/redirect-methods"],
- ["BuildURLs", "/references/javascript/clerk/build-urls"],
- [
- "Handle navigation",
- "/references/javascript/clerk/handle-navigation"
- ],
- ["Session methods", "/references/javascript/clerk/session-methods"]
- ]
- ],
- [
- { "title": "User" },
- [
- ["User object", "/references/javascript/user/user"],
- ["TOTP methods", "/references/javascript/user/totp"],
- [
- "Password management methods",
- "/references/javascript/user/password-management"
- ],
- ["Create metadata methods", "/references/javascript/user/create-metadata"]
- ]
- ],
- [
- { "title": "Organization" },
- [
- ["Organization objects", "/references/javascript/organization/organization"],
- ["Membership methods", "/references/javascript/organization/members"],
- ["Invitation methods", "/references/javascript/organization/invitations"],
- ["Domain methods", "/references/javascript/organization/domains"],
- ["Membership request methods", "/references/javascript/organization/membership-request"]
- ]
- ],
- [
- "Organization Invitation",
- "/references/javascript/organization-invitation"
- ],
- [
- "Organization Membership",
- "/references/javascript/organization-membership"
- ],
- [
- "Organization Domain",
- "/references/javascript/organization-domain"
- ],
- [
- "Organization Membership Request",
- "/references/javascript/organization-membership-request"
- ],
- ["Session", "/references/javascript/session"],
- [
- "SessionWithActivities",
- "/references/javascript/session-with-activities"
- ],
- ["Client", "/references/javascript/client"],
- ["ExternalAccount", "/references/javascript/external-account"],
- [
- { "title": "Sign In" },
- [
- ["Sign In", "/references/javascript/sign-in/sign-in"],
- ["First Factor", "/references/javascript/sign-in/first-factor"],
- ["Second Factor", "/references/javascript/sign-in/second-factor"],
- [
- "AuthenticateWith",
- "/references/javascript/sign-in/authenticate-with"
- ]
- ]
- ],
- [
- { "title": "Sign Up" },
- [
- ["Sign Up", "/references/javascript/sign-up/sign-up"],
- [
- "AuthenticateWith",
- "/references/javascript/sign-up/authenticate-with"
- ],
- ["Verification", "/references/javascript/sign-up/verification"],
- [
- "Email Verification",
- "/references/javascript/sign-up/email-verification"
- ],
- [
- "Phone Verification",
- "/references/javascript/sign-up/phone-verification"
- ],
- [
- "Web3 Verification",
- "/references/javascript/sign-up/web3-verification"
- ]
- ]
- ],
- [
- { "title": "Email Address" },
- [
- [
- "Email Address",
- "/references/javascript/email-address/email-address"
- ],
- ["Verification", "/references/javascript/email-address/verification"]
- ]
- ],
- [
- { "title": "Phone Number" },
- [
- ["Phone Number", "/references/javascript/phone-number/phone-number"],
- ["Verification", "/references/javascript/phone-number/verification"],
- ["Second factor", "/references/javascript/phone-number/second-factor"]
- ]
- ],
- [
- { "title": "Web3 Wallet" },
- [
- ["Web3 Wallet", "/references/javascript/web3-wallet/web3-wallet"],
- ["Verification", "/references/javascript/web3-wallet/verification"]
- ]
- ],
- ["Verification", "/references/javascript/verification"],
- [
- { "title": "Types" },
- [
- ["Overview", "/references/javascript/types/overview"],
- ["PublicUserData", "/references/javascript/types/public-user-data"],
- ["SessionStatus", "/references/javascript/types/session-status"],
- ["RedirectOptions", "/references/javascript/types/redirect-options"],
- ["SignInFirstFactor", "/references/javascript/types/sign-in-first-factor"],
- ["SignInSecondFactor", "/references/javascript/types/sign-in-second-factor"],
- ["SignInRedirectOptions", "/references/javascript/types/sign-in-redirect-options"],
- ["SignUpRedirectOptions", "/references/javascript/types/sign-up-redirect-options"],
- ["SignInInitialValues", "/references/javascript/types/sign-in-initial-values"],
- ["SignUpInitialValues", "/references/javascript/types/sign-up-initial-values"],
- ["MagicLinkError", "/references/javascript/types/magic-link-error"],
- ["DeletedObject", "/references/javascript/types/deleted-object"],
- ["OAuth types", "/references/javascript/types/oauth"],
- ["ClerkPaginatedResponse", "/references/javascript/types/clerk-paginated-response"],
- ["CustomPage", "/references/javascript/types/custom-page"]
- ]
- ]
- ]
- ],
- [
- {
- "title": "Node.js",
- "icon": "nodejs",
- "root": "references/nodejs"
- },
- [
- ["Overview", "references/nodejs/overview"],
- ["Available methods", "references/backend/overview"],
- ["Connect/Express Middleware", "/docs/backend-requests/handling/nodejs"],
- [
- "Networkless token verification",
- "references/nodejs/token-verification"
- ]
- ]
- ],
- [
- {
- "title": "Remix",
- "icon": "remix",
- "root": "references/remix"
- },
- [
- [" ", "references/remix/clerk-app"],
- ["ClerkErrorBoundary()", "references/remix/clerk-error-boundary"]
- ]
- ],
- [
- {
- "title": "Go",
- "icon": "go",
- "root": "references/go"
- },
- [
- ["Overview", "references/go/overview"],
- ["Verifying sessions", "references/go/verifying-sessions"],
- ["Use Clerk Go for Backend API Operations", "references/go/other-examples"],
- ["Go SDK repository", "https://github.com/clerk/clerk-sdk-go"]
- ]
- ],
- [
- {
- "title": "Gatsby",
- "icon": "gatsby",
- "root": "references/gatsby"
- },
- [["withServerAuth()", "references/gatsby/with-server-auth"]]
- ],
- [
- {
- "title": "Ruby / Rails",
- "icon": "ruby",
- "root": "references/ruby"
- },
- [
- ["Overview", "references/ruby/overview"],
- ["Available Methods", "references/ruby/available-methods"],
- ["Rack/Rails integration", "references/ruby/rack-rails"],
- ["Ruby SDK repository", "https://github.com/clerk/clerk-sdk-ruby"]
- ]
- ],
- [
- { "title": "Backend SDK", "icon": "clerk", "root": "/references/backend" },
- [
- ["Overview", "/references/backend/overview"],
- [
- { "title": "User" },
- [
- ["getUserList()", "/references/backend/user/get-user-list"],
- ["getUser()", "/references/backend/user/get-user"],
- ["getCount()", "/references/backend/user/get-count"],
- ["createUser()", "/references/backend/user/create-user"],
- ["updateUser()", "/references/backend/user/update-user"],
- ["updateUserMetadata()", "/references/backend/user/update-user-metadata"],
- ["deleteUser()", "/references/backend/user/delete-user"],
- ["getUserOAuthAccessToken()", "/references/backend/user/get-user-oauth-access-token"]
- ]
- ],
- [
- { "title": "Organization" },
- [
- [
- "getOrganization()",
- "/references/backend/organization/get-organization"
- ],
- [
- "getOrganizationList()",
- "/references/backend/organization/get-organization-list"
- ],
- [
- "getOrganizationMembershipList()",
- "/references/backend/organization/get-organization-membership-list"
- ],
- [
- "getPendingOrganizationInvitationList()",
- "/references/backend/organization/get-pending-organization-invitation-list"
- ],
- [
- "createOrganization()",
- "/references/backend/organization/create-organization"
- ],
- [
- "createOrganizationMembership()",
- "/references/backend/organization/create-organization-membership"
- ],
- [
- "createOrganizationInvitation()",
- "/references/backend/organization/create-organization-invitation"
- ],
- [
- "updateOrganization()",
- "/references/backend/organization/update-organization"
- ],
- [
- "updateOrganizationMembership()",
- "/references/backend/organization/update-organization-membership"
- ],
- [
- "updateOrganizationMetadata()",
- "/references/backend/organization/update-organization-metadata"
- ],
- [
- "updateOrganizationMembershipMetadata()",
- "/references/backend/organization/update-organization-membership-metadata"
- ],
- [
- "deleteOrganization()",
- "/references/backend/organization/delete-organization"
- ],
- [
- "deleteOrganizationMembership()",
- "/references/backend/organization/delete-organization-membership"
- ],
+ {
+ "title": "Home",
+ "href": "/docs",
+ "icon": "home"
+ },
+ {
+ "title": "Learning",
+ "items": [
[
- "revokeOrganizationInvitation()",
- "/references/backend/organization/revoke-organization-invitation"
- ]
- ]
- ],
- [
- { "title": "Allowlist Identifiers" },
- [
- [
- "getAllowlistIdentifierList()",
- "/references/backend/allowlist/get-allowlist-identifier-list"
+ {
+ "title": "Quickstarts",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/quickstarts/overview"
+ },
+ {
+ "title": "Set up Clerk",
+ "href": "/docs/quickstarts/setup-clerk"
+ },
+ {
+ "title": "Full Stack",
+ "items": [
+ [
+ {
+ "title": "Next.js",
+ "href": "/docs/quickstarts/nextjs",
+ "icon": "nextjs"
+ },
+ {
+ "title": "Remix",
+ "href": "/docs/quickstarts/remix",
+ "icon": "remix"
+ },
+ {
+ "title": "Gatsby",
+ "href": "/docs/quickstarts/gatsby",
+ "icon": "gatsby"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Frontend",
+ "items": [
+ [
+ {
+ "title": "JavaScript",
+ "href": "/docs/quickstarts/javascript",
+ "icon": "javascript"
+ },
+ {
+ "title": "React",
+ "href": "/docs/quickstarts/react",
+ "icon": "react"
+ },
+ {
+ "title": "Expo",
+ "href": "/docs/quickstarts/expo"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Backend",
+ "items": [
+ [
+ {
+ "title": "Fastify",
+ "href": "/docs/quickstarts/fastify"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "checkmark-circle"
+ },
+ {
+ "title": "Guides",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/guides/overview"
+ },
+ {
+ "title": "Add custom onboarding to your authentication flow",
+ "href": "/docs/guides/add-onboarding-flow"
+ },
+ {
+ "title": "Transferring ownership of your App",
+ "href": "/docs/guides/transferring-your-app"
+ },
+ {
+ "title": "Use image optimization to improve app performance",
+ "href": "/docs/guides/image-optimization/imageurl-image-optimization"
+ },
+ {
+ "title": "Implement basic Role Based Access Control with metadata",
+ "href": "/docs/guides/basic-rbac"
+ },
+ {
+ "title": "Hide Personal Accounts and force organizations",
+ "href": "/docs/guides/force-organizations"
+ },
+ {
+ "title": "Migrating to Clerk from Auth.js",
+ "href": "/docs/guides/authjs-migration"
+ }
+ ]
+ ],
+ "icon": "book"
+ }
],
[
- "createAllowlistIdentifier()",
- "/references/backend/allowlist/create-allowlist-identifier"
- ],
- [
- "deleteAllowlistIdentifier()",
- "/references/backend/allowlist/delete-allowlist-identifier"
- ]
- ]
- ],
- [
- { "title": "Sessions" },
- [
- ["getSession()", "/references/backend/sessions/get-session"],
- ["getSessionList()", "/references/backend/sessions/get-session-list"],
- ["getToken()", "/references/backend/sessions/get-token"],
- ["authenticateRequest()", "/references/backend/sessions/authenticate-request"],
- ["verifySession()", "/references/backend/sessions/verify-session"],
- ["revokeSession()", "/references/backend/sessions/revoke-session"]
- ]
- ],
- [
- { "title": "Client" },
- [
- ["getClient()", "/references/backend/client/get-client"],
- ["getClientList()", "/references/backend/client/get-client-list"],
- ["verifyClient()", "/references/backend/client/verify-client"]
- ]
- ],
- [
- { "title": "Invitations" },
- [
- [
- "getInvitationList()",
- "/references/backend/invitations/get-invitation-list"
+ {
+ "title": "Sign Up & Sign In",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/authentication/overview"
+ },
+ {
+ "title": "Configuration",
+ "items": [
+ [
+ {
+ "title": "Sign-up and sign-in options",
+ "href": "/docs/authentication/configuration/sign-up-sign-in-options"
+ },
+ {
+ "title": "Session options",
+ "href": "/docs/authentication/configuration/session-options"
+ },
+ {
+ "title": "Email & SMS templates",
+ "href": "/docs/authentication/configuration/email-sms-templates"
+ },
+ {
+ "title": "Restrictions",
+ "href": "/docs/authentication/configuration/restrictions"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Prebuilt Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/authentication/sign-in"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/authentication/sign-up"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Social Connections",
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/authentication/social-connections/overview"
+ },
+ {
+ "title": "Social connections (OAuth)",
+ "href": "/docs/authentication/social-connections/oauth"
+ },
+ {
+ "title": "Account linking",
+ "href": "/docs/authentication/social-connections/account-linking"
+ },
+ {
+ "title": "Google",
+ "href": "/docs/authentication/social-connections/google"
+ },
+ {
+ "title": "Facebook",
+ "href": "/docs/authentication/social-connections/facebook"
+ },
+ {
+ "title": "Microsoft",
+ "href": "/docs/authentication/social-connections/microsoft"
+ },
+ {
+ "title": "See all",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Apple",
+ "href": "/docs/authentication/social-connections/apple"
+ },
+ {
+ "title": "Atlassian",
+ "href": "/docs/authentication/social-connections/atlassian"
+ },
+ {
+ "title": "Bitbucket",
+ "href": "/docs/authentication/social-connections/bitbucket"
+ },
+ {
+ "title": "Box",
+ "href": "/docs/authentication/social-connections/box"
+ },
+ {
+ "title": "Coinbase",
+ "href": "/docs/authentication/social-connections/coinbase"
+ },
+ {
+ "title": "Discord",
+ "href": "/docs/authentication/social-connections/discord"
+ },
+ {
+ "title": "Dropbox",
+ "href": "/docs/authentication/social-connections/dropbox"
+ },
+ {
+ "title": "GitHub",
+ "href": "/docs/authentication/social-connections/github"
+ },
+ {
+ "title": "GitLab",
+ "href": "/docs/authentication/social-connections/gitlab"
+ },
+ {
+ "title": "Google",
+ "href": "/docs/authentication/social-connections/google"
+ },
+ {
+ "title": "HubSpot",
+ "href": "/docs/authentication/social-connections/hubspot"
+ },
+ {
+ "title": "Line",
+ "href": "/docs/authentication/social-connections/line"
+ },
+ {
+ "title": "Linear",
+ "href": "/docs/authentication/social-connections/linear"
+ },
+ {
+ "title": "LinkedIn (Deprecated)",
+ "href": "/docs/authentication/social-connections/linkedin"
+ },
+ {
+ "title": "LinkedIn",
+ "href": "/docs/authentication/social-connections/linkedin-oidc"
+ },
+ {
+ "title": "Notion",
+ "href": "/docs/authentication/social-connections/notion"
+ },
+ {
+ "title": "Slack",
+ "href": "/docs/authentication/social-connections/slack"
+ },
+ {
+ "title": "Spotify",
+ "href": "/docs/authentication/social-connections/spotify"
+ },
+ {
+ "title": "TikTok",
+ "href": "/docs/authentication/social-connections/tiktok"
+ },
+ {
+ "title": "Twitter v1",
+ "href": "/docs/authentication/social-connections/twitter"
+ },
+ {
+ "title": "X/Twitter v2",
+ "href": "/docs/authentication/social-connections/x-twitter"
+ },
+ {
+ "title": "Xero",
+ "href": "/docs/authentication/social-connections/xero"
+ }
+ ]
+ ]
+ }
+ ]
+ ]
+ },
+ {
+ "title": "SAML",
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/authentication/saml/overview"
+ },
+ {
+ "title": "Authentication flows",
+ "href": "/docs/authentication/saml/authentication-flows"
+ },
+ {
+ "title": "Account linking",
+ "href": "/docs/authentication/saml/account-linking"
+ },
+ {
+ "title": "Azure",
+ "href": "/docs/authentication/saml/azure"
+ },
+ {
+ "title": "Google",
+ "href": "/docs/authentication/saml/google"
+ },
+ {
+ "title": "Okta",
+ "href": "/docs/authentication/saml/okta"
+ },
+ {
+ "title": "Custom provider",
+ "href": "/docs/authentication/saml/custom-provider"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "door"
+ },
+ {
+ "title": "Users",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/users/overview"
+ },
+ {
+ "title": "Metadata",
+ "href": "/docs/users/metadata"
+ },
+ {
+ "title": "Deleting users",
+ "href": "/docs/users/deleting-users"
+ },
+ {
+ "title": "Prebuilt Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/user/user-button"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/user/user-profile"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Guides",
+ "items": [
+ [
+ {
+ "title": "Web3 authentication",
+ "href": "/docs/users/web3"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "user-circle"
+ },
+ {
+ "title": "Organizations, Roles, and Permissions",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/organizations/overview"
+ },
+ {
+ "title": "Roles and permissions",
+ "href": "/docs/organizations/roles-permissions"
+ },
+ {
+ "title": "Prebuilt Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/create-organization"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/organization-profile"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/organization-switcher"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/organization-list"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/protect"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Guides",
+ "items": [
+ [
+ {
+ "title": "Create roles and assign permissions",
+ "href": "/docs/organizations/create-roles-permissions"
+ },
+ {
+ "title": "Verify the active user’s permissions",
+ "href": "/docs/organizations/verify-user-permissions"
+ },
+ {
+ "title": "Reassign the creator role",
+ "href": "/docs/organizations/creator-role"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Building custom flows",
+ "items": [
+ [
+ {
+ "title": "Using metadata",
+ "href": "/docs/organizations/metadata"
+ },
+ {
+ "title": "Creating organizations",
+ "href": "/docs/organizations/creating-organizations"
+ },
+ {
+ "title": "Updating organizations",
+ "href": "/docs/organizations/updating-organizations"
+ },
+ {
+ "title": "Inviting users",
+ "href": "/docs/organizations/inviting-users"
+ },
+ {
+ "title": "Managing roles",
+ "href": "/docs/organizations/managing-roles"
+ },
+ {
+ "title": "Viewing memberships",
+ "href": "/docs/organizations/viewing-memberships"
+ },
+ {
+ "title": "Create a custom organization switcher",
+ "href": "/docs/organizations/custom-organization-switcher"
+ },
+ {
+ "title": "Verified domains",
+ "href": "/docs/organizations/verified-domains"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "globe"
+ },
+ {
+ "title": "Backend Requests",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/backend-requests/overview"
+ },
+ {
+ "title": "Making requests",
+ "items": [
+ [
+ {
+ "title": "Same-Origin Requests",
+ "href": "/docs/backend-requests/making/same-origin"
+ },
+ {
+ "title": "Cross-Origin Requests",
+ "href": "/docs/backend-requests/making/cross-origin"
+ },
+ {
+ "title": "Customize your session token",
+ "href": "/docs/backend-requests/making/custom-session-token"
+ },
+ {
+ "title": "JWT Templates",
+ "href": "/docs/backend-requests/making/jwt-templates"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Handling requests",
+ "items": [
+ [
+ {
+ "title": "Node.js & Express",
+ "href": "/docs/backend-requests/handling/nodejs"
+ },
+ {
+ "title": "Go",
+ "href": "/docs/backend-requests/handling/go",
+ "icon": "go"
+ },
+ {
+ "title": "Gatsby",
+ "href": "/docs/backend-requests/handling/gatsby",
+ "icon": "gatsby"
+ },
+ {
+ "title": "Ruby / Rails",
+ "href": "/docs/backend-requests/handling/ruby-rails",
+ "icon": "ruby"
+ },
+ {
+ "title": "Manual JWT Verification",
+ "href": "/docs/backend-requests/handling/manual-jwt"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Versioning",
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/backend-requests/versioning/overview"
+ },
+ {
+ "title": "Available versions",
+ "href": "/docs/backend-requests/versioning/available-versions"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Resources",
+ "items": [
+ [
+ {
+ "title": "Session tokens",
+ "href": "/docs/backend-requests/resources/session-tokens"
+ },
+ {
+ "title": "Rate limits",
+ "href": "/docs/backend-requests/resources/rate-limits"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "stacked-rectangle"
+ }
],
[
- "createInvitation()",
- "/references/backend/invitations/create-invitation"
+ {
+ "title": "Account Portal",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/account-portal/overview"
+ },
+ {
+ "title": "Getting started",
+ "href": "/docs/account-portal/getting-started"
+ },
+ {
+ "title": "Advanced Usage",
+ "items": [
+ [
+ {
+ "title": "Custom redirects",
+ "href": "/docs/account-portal/custom-redirects"
+ },
+ {
+ "title": "Direct links",
+ "href": "/docs/account-portal/direct-links"
+ },
+ {
+ "title": "User & Organization Pages",
+ "href": "/docs/account-portal/user-profile-org-profile"
+ },
+ {
+ "title": "Disable Account Portal",
+ "href": "/docs/account-portal/disable-account-portal"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "user-dotted-circle"
+ },
+ {
+ "title": "Component Reference",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/components/overview"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/clerk-provider"
+ },
+ {
+ "title": "Authentication Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/authentication/sign-in"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/authentication/sign-up"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "User Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/user/user-button"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/user/user-profile"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Organization Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/create-organization"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/organization-profile"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/organization-switcher"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/organization/organization-list"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Customization",
+ "items": [
+ [
+ {
+ "title": "Appearance prop",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/components/customization/overview"
+ },
+ {
+ "title": "Layout",
+ "href": "/docs/components/customization/layout"
+ },
+ {
+ "title": "Themes",
+ "href": "/docs/components/customization/themes"
+ },
+ {
+ "title": "Variables",
+ "href": "/docs/components/customization/variables"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Localization prop (i18n)",
+ "href": "/docs/components/customization/localization"
+ },
+ {
+ "title": "Custom Pages",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/customization/user-profile"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/customization/organization-profile"
+ }
+ ]
+ ]
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Control Components",
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/control/authenticate-with-callback"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/control/clerk-loaded"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/control/clerk-loading"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/protect"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/control/multi-session"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/control/redirect-to-signin"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/control/redirect-to-signup"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/control/redirect-to-userprofile"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/control/redirect-to-organizationprofile"
+ },
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/components/control/redirect-to-createorganization"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/control/signed-in"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/control/signed-out"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Unstyled Components",
+ "items": [
+ [
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/unstyled/sign-in-button"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/unstyled/sign-in-with-metamask"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/unstyled/sign-up-button"
+ },
+ {
+ "title": "``",
+ "wrap": false,
+ "href": "/docs/components/unstyled/sign-out-button"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "box"
+ },
+ {
+ "title": "Custom Flows",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/custom-flows/overview"
+ },
+ {
+ "title": "`useSignUp()` and `useSignIn()`",
+ "href": "/docs/custom-flows/use-sign-up"
+ },
+ {
+ "title": "Email & Password",
+ "href": "/docs/custom-flows/email-password"
+ },
+ {
+ "title": "Email / SMS OTP",
+ "href": "/docs/custom-flows/email-sms-otp"
+ },
+ {
+ "title": "Magic links",
+ "href": "/docs/custom-flows/magic-links"
+ },
+ {
+ "title": "Multifactor",
+ "href": "/docs/custom-flows/mfa"
+ },
+ {
+ "title": "OAuth Connections",
+ "href": "/docs/custom-flows/oauth-connections"
+ },
+ {
+ "title": "SAML Connections",
+ "href": "/docs/custom-flows/saml-connections"
+ },
+ {
+ "title": "Forgot Password",
+ "href": "/docs/custom-flows/forgot-password"
+ },
+ {
+ "title": "Sign out",
+ "href": "/docs/custom-flows/sign-out"
+ },
+ {
+ "title": "User Impersonation",
+ "href": "/docs/custom-flows/user-impersonation"
+ },
+ {
+ "title": "Invitations",
+ "href": "/docs/custom-flows/invitations"
+ },
+ {
+ "title": "Embedded Magic Links",
+ "href": "/docs/custom-flows/embedded-magic-links"
+ },
+ {
+ "title": "Multi-session applications",
+ "href": "/docs/custom-flows/multi-session-applications"
+ },
+ {
+ "title": "Error handling",
+ "href": "/docs/custom-flows/error-handling"
+ }
+ ]
+ ],
+ "icon": "route"
+ }
],
[
- "revokeInvitation()",
- "/references/backend/invitations/revoke-invitation"
+ {
+ "title": "Integrations",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/integrations/overview"
+ },
+ {
+ "title": "Webhooks",
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/integrations/webhooks/overview"
+ },
+ {
+ "title": "Sync Clerk data to your backend with webhooks",
+ "href": "/docs/integrations/webhooks/sync-data"
+ },
+ {
+ "title": "Handling webhooks with Inngest",
+ "href": "/docs/integrations/webhooks/inngest"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Databases",
+ "items": [
+ [
+ {
+ "title": "Convex",
+ "href": "/docs/integrations/databases/convex"
+ },
+ {
+ "title": "Fauna",
+ "href": "/docs/integrations/databases/fauna"
+ },
+ {
+ "title": "Firebase",
+ "href": "/docs/integrations/databases/firebase"
+ },
+ {
+ "title": "Grafbase",
+ "href": "/docs/integrations/databases/grafbase"
+ },
+ {
+ "title": "Hasura",
+ "href": "/docs/integrations/databases/hasura"
+ },
+ {
+ "title": "Nhost",
+ "href": "/docs/integrations/databases/nhost"
+ },
+ {
+ "title": "Supabase",
+ "href": "/docs/integrations/databases/supabase"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Analytics",
+ "items": [
+ [
+ {
+ "title": "Google Analytics",
+ "href": "/docs/integrations/analytics/google-analytics"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "plug"
+ },
+ {
+ "title": "Deployments & Migrations",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Instances / Environments",
+ "href": "/docs/deployments/environments"
+ },
+ {
+ "title": "Deployment",
+ "items": [
+ [
+ {
+ "title": "Deploy to production",
+ "href": "/docs/deployments/overview"
+ },
+ {
+ "title": "Deploy to Vercel",
+ "href": "/docs/deployments/deploy-to-vercel"
+ },
+ {
+ "title": "Set up a staging environment",
+ "href": "/docs/deployments/set-up-staging"
+ },
+ {
+ "title": "Set up a preview environment",
+ "href": "/docs/deployments/set-up-preview-environment"
+ },
+ {
+ "title": "Changing domains",
+ "href": "/docs/deployments/changing-domains"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Migrations",
+ "items": [
+ [
+ {
+ "title": "Migrate to Clerk",
+ "href": "/docs/deployments/migrate-overview"
+ },
+ {
+ "title": "Migrate from Firebase",
+ "href": "/docs/deployments/migrate-from-firebase"
+ },
+ {
+ "title": "Exporting user data",
+ "href": "/docs/deployments/exporting-users"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Cookie Information",
+ "items": [
+ [
+ {
+ "title": "Clerk Cookie Information",
+ "href": "/docs/deployments/clerk-cookies"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "rocket"
+ },
+ {
+ "title": "Testing",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/testing/overview"
+ },
+ {
+ "title": "Test Emails and Phones",
+ "href": "/docs/testing/test-emails-and-phones"
+ },
+ {
+ "title": "Testing Frameworks",
+ "items": [
+ [
+ {
+ "title": "Cypress",
+ "href": "/docs/testing/cypress"
+ },
+ {
+ "title": "Postman or Insomnia",
+ "href": "/docs/testing/postman-or-insomnia"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "speedometer"
+ },
+ {
+ "title": "Advanced Usage",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Clerk as an OAuth2 Provider",
+ "href": "/docs/advanced-usage/clerk-idp"
+ },
+ {
+ "title": "Adding Satellite Domains",
+ "href": "/docs/advanced-usage/satellite-domains"
+ },
+ {
+ "title": "Proxying the Clerk Frontend API",
+ "href": "/docs/advanced-usage/using-proxies"
+ }
+ ]
+ ],
+ "icon": "chart"
+ },
+ {
+ "title": "Error Handling",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/errors/overview"
+ },
+ {
+ "title": "Actor tokens",
+ "href": "/docs/errors/actor-tokens"
+ },
+ {
+ "title": "Allowlist identifiers",
+ "href": "/docs/errors/allowlist-identifiers"
+ },
+ {
+ "title": "Application",
+ "href": "/docs/errors/application"
+ },
+ {
+ "title": "Authentication",
+ "href": "/docs/errors/authentication"
+ },
+ {
+ "title": "Backup codes",
+ "href": "/docs/errors/backup-codes"
+ },
+ {
+ "title": "Billing",
+ "href": "/docs/errors/billing"
+ },
+ {
+ "title": "Billing accounts",
+ "href": "/docs/errors/billing-accounts"
+ },
+ {
+ "title": "Blocklist identifiers",
+ "href": "/docs/errors/blocklist-identifiers"
+ },
+ {
+ "title": "Clients",
+ "href": "/docs/errors/clients"
+ },
+ {
+ "title": "Cookie",
+ "href": "/docs/errors/cookie"
+ },
+ {
+ "title": "Deprecation",
+ "href": "/docs/errors/deprecation"
+ },
+ {
+ "title": "Domains",
+ "href": "/docs/errors/domains"
+ },
+ {
+ "title": "Entitlements",
+ "href": "/docs/errors/entitlements"
+ },
+ {
+ "title": "Features",
+ "href": "/docs/errors/features"
+ },
+ {
+ "title": "Identifications",
+ "href": "/docs/errors/identifications"
+ },
+ {
+ "title": "Sign-in",
+ "href": "/docs/errors/sign-in"
+ },
+ {
+ "title": "Sign-up",
+ "href": "/docs/errors/sign-up"
+ },
+ {
+ "title": "Sign-in-tokens",
+ "href": "/docs/errors/sign-in-tokens"
+ }
+ ]
+ ],
+ "icon": "block"
+ },
+ {
+ "title": "Troubleshooting",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/troubleshooting/overview"
+ },
+ {
+ "title": "Email Deliverability",
+ "href": "/docs/troubleshooting/email-deliverability"
+ },
+ {
+ "title": "Script Loading",
+ "href": "/docs/troubleshooting/script-loading"
+ },
+ {
+ "title": "Help & Support",
+ "items": [
+ [
+ {
+ "title": "Create a minimal reproduction",
+ "href": "/docs/troubleshooting/create-a-minimal-reproduction"
+ },
+ {
+ "title": "Community Discord",
+ "href": "/discord"
+ },
+ {
+ "title": "Contact Support",
+ "href": "/support"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "bolt"
+ },
+ {
+ "title": "Upgrade Guides",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Long Term Support Policy",
+ "href": "/docs/upgrade-guides/long-term-support"
+ },
+ {
+ "title": "API Key Changes",
+ "href": "/docs/upgrade-guides/api-keys"
+ },
+ {
+ "title": "URL-based session syncing",
+ "href": "/docs/upgrade-guides/url-based-session-syncing"
+ },
+ {
+ "title": "Progressive Sign up",
+ "href": "/docs/upgrade-guides/progressive-sign-up"
+ },
+ {
+ "title": "Upgrade to V3",
+ "items": [
+ [
+ {
+ "title": "Introduction",
+ "href": "/docs/upgrade-guides/v3-introduction"
+ },
+ {
+ "title": "Client-side changes",
+ "href": "/docs/upgrade-guides/v3-client-side-changes"
+ },
+ {
+ "title": "Next.js server-side changes",
+ "href": "/docs/upgrade-guides/v3-nextjs-server-side-changes"
+ },
+ {
+ "title": "Express server-side changes",
+ "href": "/docs/upgrade-guides/v3-express-server-side-changes"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "arrow-up-circle"
+ },
+ {
+ "title": "Security",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/security/overview"
+ },
+ {
+ "title": "Vulnerability disclosure policy",
+ "href": "/docs/security/vulnerability-disclosure-policy"
+ },
+ {
+ "title": "XSS leak protection",
+ "href": "/docs/security/xss-leak-protection"
+ },
+ {
+ "title": "CSRF protection",
+ "href": "/docs/security/csrf-protection"
+ },
+ {
+ "title": "Fixation protection",
+ "href": "/docs/security/fixation-protection"
+ },
+ {
+ "title": "Password protection and rules",
+ "href": "/docs/security/password-protection"
+ },
+ {
+ "title": "Protect accounts from attacks",
+ "items": [
+ [
+ {
+ "title": "Brute force attacks and locking user accounts",
+ "href": "/docs/security/user-lock-guide"
+ },
+ {
+ "title": "Customize max sign-in attempts and duration of of user lockout",
+ "href": "/docs/security/customize-user-lockout"
+ },
+ {
+ "title": "Unlock accounts from the Clerk Dashboard",
+ "href": "/docs/security/unlock-user-accounts"
+ },
+ {
+ "title": "Programmatically lock and unlock accounts",
+ "href": "/docs/security/programmatically-lock-user-accounts"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "lock"
+ }
]
]
- ],
- [
- { "title": "Email addresses" },
- [
+ },
+ {
+ "title": "SDK References",
+ "items": [
[
- "getEmailAddress()",
- "/references/backend/email-addresses/get-email-address"
- ],
- [
- "createEmailAddress()",
- "/references/backend/email-addresses/create-email-address"
- ],
- [
- "updateEmailAddress()",
- "/references/backend/email-addresses/update-email-address"
- ],
- [
- "deleteEmailAddress()",
- "/references/backend/email-addresses/delete-email-address"
+ {
+ "title": "Next.js",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/nextjs/overview"
+ },
+ {
+ "title": "Guides",
+ "items": [
+ [
+ {
+ "title": "Read session and user data",
+ "href": "/docs/references/nextjs/read-session-data"
+ },
+ {
+ "title": "Add custom sign up and sign in pages",
+ "href": "/docs/references/nextjs/custom-signup-signin-pages"
+ },
+ {
+ "title": "Integrate Clerk into your app with tRPC",
+ "href": "/docs/references/nextjs/trpc"
+ },
+ {
+ "title": "Use Clerk with Next.js 12 and older",
+ "href": "/docs/references/nextjs/usage-with-older-versions"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "App Router References",
+ "items": [
+ [
+ {
+ "title": "`auth()`",
+ "wrap": false,
+ "href": "/docs/references/nextjs/auth"
+ },
+ {
+ "title": "`currentUser()`",
+ "wrap": false,
+ "href": "/docs/references/nextjs/current-user"
+ },
+ {
+ "title": "Route Handlers",
+ "href": "/docs/references/nextjs/route-handlers"
+ },
+ {
+ "title": "Server Actions",
+ "href": "/docs/references/nextjs/server-actions"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Pages Router References",
+ "items": [
+ [
+ {
+ "title": "`getAuth()`",
+ "wrap": false,
+ "href": "/docs/references/nextjs/get-auth"
+ },
+ {
+ "title": "`buildClerkProps()`",
+ "wrap": false,
+ "href": "/docs/references/nextjs/build-clerk-props"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Other References",
+ "items": [
+ [
+ {
+ "title": "Auth Object",
+ "href": "/docs/references/nextjs/auth-object"
+ },
+ {
+ "title": "`authMiddleware()`",
+ "wrap": false,
+ "href": "/docs/references/nextjs/auth-middleware"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Deprecated",
+ "items": [
+ [
+ {
+ "title": "`withClerkMiddleware()`",
+ "wrap": false,
+ "href": "/docs/references/nextjs/with-clerk-middleware"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Demo Repositories",
+ "items": [
+ [
+ {
+ "title": "App Router Demo Repo",
+ "href": "https://github.com/clerk/clerk-nextjs-demo-app-router"
+ },
+ {
+ "title": "Pages Router Demo Repo",
+ "href": "https://github.com/clerk/clerk-nextjs-demo-pages-router"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "nextjs"
+ },
+ {
+ "title": "React",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/react/overview"
+ },
+ {
+ "title": "Guides",
+ "items": [
+ [
+ {
+ "title": "Add React Router",
+ "href": "/docs/references/react/add-react-router"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Client-side Helpers",
+ "items": [
+ [
+ {
+ "title": "`useUser()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-user"
+ },
+ {
+ "title": "`useClerk()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-clerk"
+ },
+ {
+ "title": "`useAuth()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-auth"
+ },
+ {
+ "title": "`useSignIn()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-sign-in"
+ },
+ {
+ "title": "`useSignUp()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-sign-up"
+ },
+ {
+ "title": "`useSession()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-session"
+ },
+ {
+ "title": "`useSessionList()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-session-list"
+ },
+ {
+ "title": "`useOrganization()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-organization"
+ },
+ {
+ "title": "`useOrganizationList()`",
+ "wrap": false,
+ "href": "/docs/references/react/use-organization-list"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "react"
+ },
+ {
+ "title": "JavaScript",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/javascript/overview"
+ },
+ {
+ "title": "Clerk",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Clerk class",
+ "href": "/docs/references/javascript/clerk/clerk"
+ },
+ {
+ "title": "Organization methods",
+ "href": "/docs/references/javascript/clerk/organization-methods"
+ },
+ {
+ "title": "Redirect methods",
+ "href": "/docs/references/javascript/clerk/redirect-methods"
+ },
+ {
+ "title": "BuildURLs",
+ "href": "/docs/references/javascript/clerk/build-urls"
+ },
+ {
+ "title": "Handle navigation",
+ "href": "/docs/references/javascript/clerk/handle-navigation"
+ },
+ {
+ "title": "Session methods",
+ "href": "/docs/references/javascript/clerk/session-methods"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "User",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "User object",
+ "href": "/docs/references/javascript/user/user"
+ },
+ {
+ "title": "TOTP methods",
+ "href": "/docs/references/javascript/user/totp"
+ },
+ {
+ "title": "Password management methods",
+ "href": "/docs/references/javascript/user/password-management"
+ },
+ {
+ "title": "Create metadata methods",
+ "href": "/docs/references/javascript/user/create-metadata"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Organization",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Organization objects",
+ "href": "/docs/references/javascript/organization/organization"
+ },
+ {
+ "title": "Membership methods",
+ "href": "/docs/references/javascript/organization/members"
+ },
+ {
+ "title": "Invitation methods",
+ "href": "/docs/references/javascript/organization/invitations"
+ },
+ {
+ "title": "Domain methods",
+ "href": "/docs/references/javascript/organization/domains"
+ },
+ {
+ "title": "Membership request methods",
+ "href": "/docs/references/javascript/organization/membership-request"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Organization Invitation",
+ "href": "/docs/references/javascript/organization-invitation"
+ },
+ {
+ "title": "Organization Membership",
+ "href": "/docs/references/javascript/organization-membership"
+ },
+ {
+ "title": "Organization Domain",
+ "href": "/docs/references/javascript/organization-domain"
+ },
+ {
+ "title": "Organization Membership Request",
+ "href": "/docs/references/javascript/organization-membership-request"
+ },
+ {
+ "title": "Session",
+ "href": "/docs/references/javascript/session"
+ },
+ {
+ "title": "SessionWithActivities",
+ "href": "/docs/references/javascript/session-with-activities"
+ },
+ {
+ "title": "Client",
+ "href": "/docs/references/javascript/client"
+ },
+ {
+ "title": "ExternalAccount",
+ "href": "/docs/references/javascript/external-account"
+ },
+ {
+ "title": "Sign In",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Sign In",
+ "href": "/docs/references/javascript/sign-in/sign-in"
+ },
+ {
+ "title": "First Factor",
+ "href": "/docs/references/javascript/sign-in/first-factor"
+ },
+ {
+ "title": "Second Factor",
+ "href": "/docs/references/javascript/sign-in/second-factor"
+ },
+ {
+ "title": "AuthenticateWith",
+ "href": "/docs/references/javascript/sign-in/authenticate-with"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Sign Up",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Sign Up",
+ "href": "/docs/references/javascript/sign-up/sign-up"
+ },
+ {
+ "title": "AuthenticateWith",
+ "href": "/docs/references/javascript/sign-up/authenticate-with"
+ },
+ {
+ "title": "Verification",
+ "href": "/docs/references/javascript/sign-up/verification"
+ },
+ {
+ "title": "Email Verification",
+ "href": "/docs/references/javascript/sign-up/email-verification"
+ },
+ {
+ "title": "Phone Verification",
+ "href": "/docs/references/javascript/sign-up/phone-verification"
+ },
+ {
+ "title": "Web3 Verification",
+ "href": "/docs/references/javascript/sign-up/web3-verification"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Email Address",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Email Address",
+ "href": "/docs/references/javascript/email-address/email-address"
+ },
+ {
+ "title": "Verification",
+ "href": "/docs/references/javascript/email-address/verification"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Phone Number",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Phone Number",
+ "href": "/docs/references/javascript/phone-number/phone-number"
+ },
+ {
+ "title": "Verification",
+ "href": "/docs/references/javascript/phone-number/verification"
+ },
+ {
+ "title": "Second factor",
+ "href": "/docs/references/javascript/phone-number/second-factor"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Web3 Wallet",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Web3 Wallet",
+ "href": "/docs/references/javascript/web3-wallet/web3-wallet"
+ },
+ {
+ "title": "Verification",
+ "href": "/docs/references/javascript/web3-wallet/verification"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Verification",
+ "href": "/docs/references/javascript/verification"
+ },
+ {
+ "title": "Types",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/javascript/types/overview"
+ },
+ {
+ "title": "PublicUserData",
+ "href": "/docs/references/javascript/types/public-user-data"
+ },
+ {
+ "title": "SessionStatus",
+ "href": "/docs/references/javascript/types/session-status"
+ },
+ {
+ "title": "RedirectOptions",
+ "href": "/docs/references/javascript/types/redirect-options"
+ },
+ {
+ "title": "SignInFirstFactor",
+ "href": "/docs/references/javascript/types/sign-in-first-factor"
+ },
+ {
+ "title": "SignInSecondFactor",
+ "href": "/docs/references/javascript/types/sign-in-second-factor"
+ },
+ {
+ "title": "SignInRedirectOptions",
+ "href": "/docs/references/javascript/types/sign-in-redirect-options"
+ },
+ {
+ "title": "SignUpRedirectOptions",
+ "href": "/docs/references/javascript/types/sign-up-redirect-options"
+ },
+ {
+ "title": "SignInInitialValues",
+ "href": "/docs/references/javascript/types/sign-in-initial-values"
+ },
+ {
+ "title": "SignUpInitialValues",
+ "href": "/docs/references/javascript/types/sign-up-initial-values"
+ },
+ {
+ "title": "MagicLinkError",
+ "href": "/docs/references/javascript/types/magic-link-error"
+ },
+ {
+ "title": "DeletedObject",
+ "href": "/docs/references/javascript/types/deleted-object"
+ },
+ {
+ "title": "OAuth types",
+ "href": "/docs/references/javascript/types/oauth"
+ },
+ {
+ "title": "ClerkPaginatedResponse",
+ "href": "/docs/references/javascript/types/clerk-paginated-response"
+ },
+ {
+ "title": "CustomPage",
+ "href": "/docs/references/javascript/types/custom-page"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "javascript"
+ },
+ {
+ "title": "Node.js",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/nodejs/overview"
+ },
+ {
+ "title": "Available methods",
+ "href": "/docs/references/backend/overview"
+ },
+ {
+ "title": "Connect/Express Middleware",
+ "href": "/docs/backend-requests/handling/nodejs"
+ },
+ {
+ "title": "Networkless token verification",
+ "href": "/docs/references/nodejs/token-verification"
+ }
+ ]
+ ],
+ "icon": "nodejs"
+ },
+ {
+ "title": "Remix",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "` `",
+ "wrap": false,
+ "href": "/docs/references/remix/clerk-app"
+ },
+ {
+ "title": "`ClerkErrorBoundary()`",
+ "wrap": false,
+ "href": "/docs/references/remix/clerk-error-boundary"
+ }
+ ]
+ ],
+ "icon": "remix"
+ },
+ {
+ "title": "Go",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/go/overview"
+ },
+ {
+ "title": "Verifying sessions",
+ "href": "/docs/references/go/verifying-sessions"
+ },
+ {
+ "title": "Use Clerk Go for Backend API Operations",
+ "href": "/docs/references/go/other-examples"
+ },
+ {
+ "title": "Go SDK repository",
+ "href": "https://github.com/clerk/clerk-sdk-go"
+ }
+ ]
+ ],
+ "icon": "go"
+ },
+ {
+ "title": "Gatsby",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`withServerAuth()`",
+ "wrap": false,
+ "href": "/docs/references/gatsby/with-server-auth"
+ }
+ ]
+ ],
+ "icon": "gatsby"
+ },
+ {
+ "title": "Ruby / Rails",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/ruby/overview"
+ },
+ {
+ "title": "Available Methods",
+ "href": "/docs/references/ruby/available-methods"
+ },
+ {
+ "title": "Rack/Rails integration",
+ "href": "/docs/references/ruby/rack-rails"
+ },
+ {
+ "title": "Ruby SDK repository",
+ "href": "https://github.com/clerk/clerk-sdk-ruby"
+ }
+ ]
+ ],
+ "icon": "ruby"
+ },
+ {
+ "title": "Backend SDK",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/backend/overview"
+ },
+ {
+ "title": "User",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getUserList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/get-user-list"
+ },
+ {
+ "title": "`getUser()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/get-user"
+ },
+ {
+ "title": "`getCount()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/get-count"
+ },
+ {
+ "title": "`createUser()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/create-user"
+ },
+ {
+ "title": "`updateUser()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/update-user"
+ },
+ {
+ "title": "`updateUserMetadata()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/update-user-metadata"
+ },
+ {
+ "title": "`deleteUser()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/delete-user"
+ },
+ {
+ "title": "`getUserOAuthAccessToken()`",
+ "wrap": false,
+ "href": "/docs/references/backend/user/get-user-oauth-access-token"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Organization",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getOrganization()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/get-organization"
+ },
+ {
+ "title": "`getOrganizationList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/get-organization-list"
+ },
+ {
+ "title": "`getOrganizationMembershipList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/get-organization-membership-list"
+ },
+ {
+ "title": "`getPendingOrganizationInvitationList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/get-pending-organization-invitation-list"
+ },
+ {
+ "title": "`createOrganization()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/create-organization"
+ },
+ {
+ "title": "`createOrganizationMembership()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/create-organization-membership"
+ },
+ {
+ "title": "`createOrganizationInvitation()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/create-organization-invitation"
+ },
+ {
+ "title": "`updateOrganization()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/update-organization"
+ },
+ {
+ "title": "`updateOrganizationMembership()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/update-organization-membership"
+ },
+ {
+ "title": "`updateOrganizationMetadata()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/update-organization-metadata"
+ },
+ {
+ "title": "`updateOrganizationMembershipMetadata()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/update-organization-membership-metadata"
+ },
+ {
+ "title": "`deleteOrganization()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/delete-organization"
+ },
+ {
+ "title": "`deleteOrganizationMembership()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/delete-organization-membership"
+ },
+ {
+ "title": "`revokeOrganizationInvitation()`",
+ "wrap": false,
+ "href": "/docs/references/backend/organization/revoke-organization-invitation"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Allowlist Identifiers",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getAllowlistIdentifierList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/allowlist/get-allowlist-identifier-list"
+ },
+ {
+ "title": "`createAllowlistIdentifier()`",
+ "wrap": false,
+ "href": "/docs/references/backend/allowlist/create-allowlist-identifier"
+ },
+ {
+ "title": "`deleteAllowlistIdentifier()`",
+ "wrap": false,
+ "href": "/docs/references/backend/allowlist/delete-allowlist-identifier"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Sessions",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getSession()`",
+ "wrap": false,
+ "href": "/docs/references/backend/sessions/get-session"
+ },
+ {
+ "title": "`getSessionList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/sessions/get-session-list"
+ },
+ {
+ "title": "`getToken()`",
+ "wrap": false,
+ "href": "/docs/references/backend/sessions/get-token"
+ },
+ {
+ "title": "`authenticateRequest()`",
+ "wrap": false,
+ "href": "/docs/references/backend/sessions/authenticate-request"
+ },
+ {
+ "title": "`verifySession()`",
+ "wrap": false,
+ "href": "/docs/references/backend/sessions/verify-session"
+ },
+ {
+ "title": "`revokeSession()`",
+ "wrap": false,
+ "href": "/docs/references/backend/sessions/revoke-session"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Client",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getClient()`",
+ "wrap": false,
+ "href": "/docs/references/backend/client/get-client"
+ },
+ {
+ "title": "`getClientList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/client/get-client-list"
+ },
+ {
+ "title": "`verifyClient()`",
+ "wrap": false,
+ "href": "/docs/references/backend/client/verify-client"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Invitations",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getInvitationList()`",
+ "wrap": false,
+ "href": "/docs/references/backend/invitations/get-invitation-list"
+ },
+ {
+ "title": "`createInvitation()`",
+ "wrap": false,
+ "href": "/docs/references/backend/invitations/create-invitation"
+ },
+ {
+ "title": "`revokeInvitation()`",
+ "wrap": false,
+ "href": "/docs/references/backend/invitations/revoke-invitation"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Email addresses",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "`getEmailAddress()`",
+ "wrap": false,
+ "href": "/docs/references/backend/email-addresses/get-email-address"
+ },
+ {
+ "title": "`createEmailAddress()`",
+ "wrap": false,
+ "href": "/docs/references/backend/email-addresses/create-email-address"
+ },
+ {
+ "title": "`updateEmailAddress()`",
+ "wrap": false,
+ "href": "/docs/references/backend/email-addresses/update-email-address"
+ },
+ {
+ "title": "`deleteEmailAddress()`",
+ "wrap": false,
+ "href": "/docs/references/backend/email-addresses/delete-email-address"
+ }
+ ]
+ ]
+ },
+ {
+ "title": "Types",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "PaginatedResourceResponse",
+ "href": "/docs/references/backend/types/paginated-resource-response"
+ },
+ {
+ "title": "Backend User object",
+ "href": "/docs/references/backend/types/backend-user"
+ }
+ ]
+ ]
+ }
+ ]
+ ],
+ "icon": "clerk"
+ },
+ {
+ "title": "Redwood",
+ "tag": "Community",
+ "collapse": true,
+ "items": [
+ [
+ {
+ "title": "Overview",
+ "href": "/docs/references/redwood/overview"
+ },
+ {
+ "title": "Redwood",
+ "href": "https://redwoodjs.com/docs/auth/clerk",
+ "icon": "redwood"
+ }
+ ]
+ ],
+ "icon": "redwood"
+ },
+ {
+ "title": "Svelte",
+ "tag": "Community",
+ "href": "https://github.com/markjaquith/clerk-sveltekit",
+ "icon": "svelte"
+ },
+ {
+ "title": "Vue",
+ "tag": "Community",
+ "href": "https://vue-clerk.vercel.app",
+ "icon": "vue"
+ },
+ {
+ "title": "Elysia",
+ "tag": "Community",
+ "href": "https://github.com/wobsoriano/elysia-clerk",
+ "icon": "elysia"
+ },
+ {
+ "title": "Rust",
+ "tag": "Community",
+ "href": "https://github.com/cincinnati-ventures/clerk-rs",
+ "icon": "rust"
+ },
+ {
+ "title": "Hono",
+ "tag": "Community",
+ "href": "https://github.com/honojs/middleware/tree/main/packages/clerk-auth",
+ "icon": "hono"
+ },
+ {
+ "title": "C#",
+ "tag": "Community",
+ "href": "https://github.com/Hawxy/Clerk.Net",
+ "icon": "c-sharp"
+ },
+ {
+ "title": "Astro",
+ "tag": "Community",
+ "href": "https://github.com/panteliselef/astro-with-clerk-auth/blob/main/packages/astro-clerk-auth/README.md",
+ "icon": "astro"
+ }
]
]
- ],
- [
- { "title": "Types" },
- [
+ },
+ {
+ "title": "API References",
+ "items": [
[
- "PaginatedResourceResponse",
- "/references/backend/types/paginated-resource-response"
- ],
- [
- "Backend User object",
- "/references/backend/types/backend-user"
+ {
+ "title": "Backend API",
+ "href": "https://clerk.com/docs/reference/backend-api"
+ },
+ {
+ "title": "Frontend API",
+ "href": "https://clerk.com/docs/reference/frontend-api"
+ }
]
]
- ]
- ]
- ],
- [
- {
- "title": "Redwood",
- "icon": "redwood",
- "root": "references/redwood",
- "tag": "Community"
- },
- [
- ["Overview", "/references/redwood/overview"],
- ["Redwood", "https://redwoodjs.com/docs/auth/clerk"]
- ]
- ],
- [
- {
- "title": "Svelte",
- "icon": "svelte",
- "root": "references/svelte",
- "tag": "Community"
- },
- [
- ["Svelte", "https://github.com/markjaquith/clerk-sveltekit"]
- ]
- ],
- [
- {
- "title": "Vue",
- "icon": "vue",
- "root": "references/vue",
- "tag": "Community"
- },
- [
- ["Vue", "https://vue-clerk.vercel.app/"]
- ]
- ],
- [
- {
- "title": "Elysia",
- "icon": "elysia",
- "root": "references/elysia",
- "tag": "Community"
- },
- [
- ["Elysia", "https://github.com/wobsoriano/elysia-clerk"]
- ]
- ],
- [
- {
- "title": "Rust",
- "icon": "rust",
- "root": "references/rust",
- "tag": "Community"
- },
- [
- ["Rust", "https://github.com/cincinnati-ventures/clerk-rs"]
- ]
- ],
- [
- {
- "title": "Hono",
- "icon": "hono",
- "root": "references/hono",
- "tag": "Community"
- },
- [
- ["Hono", "https://github.com/honojs/middleware/tree/main/packages/clerk-auth"]
- ]
- ],
- [
- {
- "title": "C#",
- "icon": "csharp",
- "root": "references/csharp",
- "tag": "Community"
- },
- [
- ["C#", "https://github.com/Hawxy/Clerk.Net"]
- ]
- ],
- [
- {
- "title": "Astro",
- "icon": "astro",
- "root": "references/astro",
- "tag": "Community"
- },
- [
- ["Astro", "https://github.com/panteliselef/astro-with-clerk-auth/blob/main/packages/astro-clerk-auth/README.md"]
+ }
]
- ],
- "# API References",
- ["Backend API", "/reference/backend-api"],
- ["Frontend API", "/reference/frontend-api/"]
-]
+ ]
+}
diff --git a/docs/organizations/create-roles-permissions.mdx b/docs/organizations/create-roles-permissions.mdx
index f25e81904b..6d0c5f9a7a 100644
--- a/docs/organizations/create-roles-permissions.mdx
+++ b/docs/organizations/create-roles-permissions.mdx
@@ -3,8 +3,6 @@ title: Create roles and assign permissions
description: Use the Clerk Dashboard to create and assign roles and permissions to users in your organization.
---
-# Create roles and assign permissions
-
In the Clerk Dashboard, you can create roles, assign permissions to them, and change users' roles.
## Create a new role for your organization
diff --git a/docs/organizations/creating-organizations.mdx b/docs/organizations/creating-organizations.mdx
index 9b770ea5c7..22d8ccfbd4 100644
--- a/docs/organizations/creating-organizations.mdx
+++ b/docs/organizations/creating-organizations.mdx
@@ -3,8 +3,6 @@ title: Create an organization
description: Learn how to create an organization in your Clerk instance.
---
-# Create an organization
-
Organizations are created by your end users. Whichever signed-in user creates an organization takes on the [**Creator** role](/docs/organizations/roles-permissions#the-creator-role) for that organization.
There are two ways to create an organization:
diff --git a/docs/organizations/creator-role.mdx b/docs/organizations/creator-role.mdx
index 50efef2508..82e904fe92 100644
--- a/docs/organizations/creator-role.mdx
+++ b/docs/organizations/creator-role.mdx
@@ -4,8 +4,6 @@ description: Learn how to assign Clerk's Creator role to any other role in an or
content-type: guide
---
-# Reassign the **Creator** role
-
When a user creates a new organization, that user is automatically added as the organization's first member and assigned whichever role is that org's [**Creator** role](/docs/organizations/roles-permissions#the-creator-role). By default, that role is `admin`.
You cannot delete an organization role if it is used as the organization **Creator** role. But, you *can* reassign the **Creator** role to any other role with the right permissions. For example, if you want to delete the `admin` role, you will have to assign another role as the **Creator** role.
diff --git a/docs/organizations/custom-organization-switcher.mdx b/docs/organizations/custom-organization-switcher.mdx
index a52b7549e5..915552ad46 100644
--- a/docs/organizations/custom-organization-switcher.mdx
+++ b/docs/organizations/custom-organization-switcher.mdx
@@ -3,8 +3,6 @@ title: Create a custom organization switcher
description: Learn how to build a custom organization switcher using the useOrganizationList() hook.
---
-# Create a custom organization switcher
-
If you need more control than what Clerk's prebuilt [` `](/docs/components/organization/organization-switcher) component provides, you can build your own organization switcher using the [`useOrganizationList()`](/docs/references/react/use-organization-list) hook.
In the following example, the `useOrganizationList()` hook is used to fetch `userMemberships`, which contains a `data` array of the user's organizations. The `data` array is paginated and will only return the first 10 results, so the `fetchNext()` method is used to load more organizations if they are available. For more information about the properties and methods available on the `userMemberships` object, visit the [`useOrganizationList()` reference page](https://clerk.com/docs/references/react/use-organization-list#paginated-resources).
diff --git a/docs/organizations/inviting-users.mdx b/docs/organizations/inviting-users.mdx
index 4d28f04b32..f1371e81fd 100644
--- a/docs/organizations/inviting-users.mdx
+++ b/docs/organizations/inviting-users.mdx
@@ -3,8 +3,6 @@ title: Invite users to an organization
description: Learn how to invite new users to an organization.
---
-# Invite users to an organization
-
Organization members with appropriate [permissions](/docs/organizations/roles-permissions) can invite new users to their organization and manage those invitations. When an administrator invites a new member, an invitation email is sent out. The invitation recipient can be either an existing user of your application or a new user. If the latter is true, the user will need to register in order to accept the invitation.
In React and Next.js applications, the [`useOrganization()`](/docs/references/react/use-organization) hook returns the `organization` property, which is then used to call [`organization.inviteMember()`](/docs/references/javascript/organization/invitations#invite-member) passing in the recipient's email address and desired role.
diff --git a/docs/organizations/managing-roles.mdx b/docs/organizations/managing-roles.mdx
index f1dfa1bf22..907b004139 100644
--- a/docs/organizations/managing-roles.mdx
+++ b/docs/organizations/managing-roles.mdx
@@ -3,8 +3,6 @@ title: Manage member roles in an organization
description: Learn how to manage member roles in an organization.
---
-# Manage member roles in an organization
-
Organization members with appropriate [permissions](/docs/organizations/roles-permissions#permissions) can manage member [roles](/docs/organizations/roles-permissions#roles) within an organization, including changing a member's role, removing them from an organization, and revoking organization invitations.
The [`useOrganization()`](/docs/references/react/use-organization) hook can be used to retrieve the current user's membership or the list of memberships for the currently active organization. The [`destroy`](/docs/references/javascript/organization-membership#destroy) and [`update`](/docs/references/javascript/organization-membership#update) methods can be called on the membership object to remove a member or change their role.
diff --git a/docs/organizations/metadata.mdx b/docs/organizations/metadata.mdx
index bf498a2759..5617b1a432 100644
--- a/docs/organizations/metadata.mdx
+++ b/docs/organizations/metadata.mdx
@@ -3,8 +3,6 @@ title: Organization metadata
description: Organization objects hold a set of metadata that can be used internally to store arbitrary information.
---
-# Organization metadata
-
Organization metadata allows you to store information about an organization that is not part of the standard fields, such as custom attributes that are specific to your application.
There are two types of metadata: **public** and **private**.
diff --git a/docs/organizations/overview.mdx b/docs/organizations/overview.mdx
index 56b7967b85..6c5adeb7df 100644
--- a/docs/organizations/overview.mdx
+++ b/docs/organizations/overview.mdx
@@ -1,10 +1,8 @@
---
-title: Organizations, roles, and permissions
+title: Organizations
description: Learn about how to create and manage Clerk organizations and their members.
---
-# Organizations
-
Organizations are a way of grouping your application's users. Organizations are shared accounts, useful for project and team leaders—think of GitHub Teams or the different departments of a company. Members of different organizations can usually collaborate across shared resources but might have different levels of access and permissions with different [roles](/docs/organizations/overview#roles).
There is no limit to the number of organizations a user can be a member of. However, a user can only create up to 100 organizations in a given application instance.
diff --git a/docs/organizations/roles-permissions.mdx b/docs/organizations/roles-permissions.mdx
index c79f52f646..9bb6cdb345 100644
--- a/docs/organizations/roles-permissions.mdx
+++ b/docs/organizations/roles-permissions.mdx
@@ -3,8 +3,6 @@ title: Roles and permissions
description: Learn about how to create and manage roles and permissions for Clerk organizations and their members.
---
-# Roles and permissions
-
Clerk supports modeling your own custom role and permissions to control access to resources within your application when you use [organizations](/docs/organizations/overview).
## Roles
diff --git a/docs/organizations/updating-organizations.mdx b/docs/organizations/updating-organizations.mdx
index d1839cd350..135961f0a7 100644
--- a/docs/organizations/updating-organizations.mdx
+++ b/docs/organizations/updating-organizations.mdx
@@ -3,8 +3,6 @@ title: Update an organization
description: Learn how to update an organization in your Clerk instance.
---
-# Update an organization
-
Administrators have the ability to update an organization. Currently, Clerk supports updating an organization name.
The organization name can be updated by calling the [`update`](/docs/references/javascript/organization/organization#update) method on the `Organization` object. In React and Next.js applications, you can use the [`useOrganization()`](/docs/references/react/use-organization) hook to directly access and update the `Organization` object.
diff --git a/docs/organizations/verified-domains.mdx b/docs/organizations/verified-domains.mdx
index 77e2dbc82d..32a93949b7 100644
--- a/docs/organizations/verified-domains.mdx
+++ b/docs/organizations/verified-domains.mdx
@@ -1,10 +1,8 @@
---
-title: Verified Domains
+title: Creating and verifying a domain
description: Learn about how to use verified domains for organizations.
---
-# Creating and verifying a domain
-
Domains can be added and verified under an organization by an administrator. In order to enable this feature, go to the Clerk Dashboard and navigate to the **[Organizations Settings](https://dashboard.clerk.com/last-active?path=organizations-settings)** page. Toggle on **Verified domains**. The only parameter needed to create an organization domain is the `name`.
Domains can be verified through an email verification code sent to an email that matches the domain. If the administrator adding the domain already has a verified email using that domain in their account, the domain will be automatically verified.
diff --git a/docs/organizations/verify-user-permissions.mdx b/docs/organizations/verify-user-permissions.mdx
index e8b86dbc0a..d703e6541a 100644
--- a/docs/organizations/verify-user-permissions.mdx
+++ b/docs/organizations/verify-user-permissions.mdx
@@ -3,8 +3,6 @@ title: Verify the active user's permissions in an organization
description: A collection of utility functions and components in order to allow developers to perform authorization checks.
---
-# Verify the active user's permissions in an organization
-
The following authorization checks are predicated on a user having an active organization. Without this, they will likely always evaluate to false by default. Clerk's built-in [` `](/docs/components/organization/organization-switcher) component and[`useOrganizationList().setActive({ organization: })`](/docs/references/react/use-organization-list) method are two available options to set an organization as active for a user.
diff --git a/docs/organizations/viewing-memberships.mdx b/docs/organizations/viewing-memberships.mdx
index 30a5414593..aef2e69081 100644
--- a/docs/organizations/viewing-memberships.mdx
+++ b/docs/organizations/viewing-memberships.mdx
@@ -3,8 +3,6 @@ title: View current organization memberships
description: Learn how to view organization memberships for the currently signed-in user.
---
-# View current organization memberships
-
Clerk provides the ability for the currently signed-in user to view all the organizations they are members of.
In React and Next.js applications, the [`useOrganizationList()`](/docs/references/react/use-organization-list) hook can be used to return the list of invitations or memberships for the currently active user. In JavaScript applications, the [`getOrganizationMemberships()`](/docs/references/javascript/clerk/organization-methods#get-organization-memberships) method is used to retrieve the list of organizations the current user is a part of and can be accessed through the [`Clerk` object](/docs/references/javascript/clerk/clerk).
diff --git a/docs/quickstarts/expo.mdx b/docs/quickstarts/expo.mdx
index 9b8818b62a..3089d7c279 100644
--- a/docs/quickstarts/expo.mdx
+++ b/docs/quickstarts/expo.mdx
@@ -3,8 +3,6 @@ title: Use Clerk with Expo
description: Learn how to use Clerk to quickly and easily add secure authentication and user management to your Expo application.
---
-# Use Clerk with Expo
-
Learn how to use Clerk to quickly and easily add secure authentication and user management to your Expo application.
diff --git a/docs/quickstarts/fastify.mdx b/docs/quickstarts/fastify.mdx
index 95df1f939f..7f854c5c0f 100644
--- a/docs/quickstarts/fastify.mdx
+++ b/docs/quickstarts/fastify.mdx
@@ -3,8 +3,6 @@ title: Use Clerk with Fastify
description: Learn how to use Clerk to easily add authentication focused on security, speed, and DX to your Fastify server.
---
-# Use Clerk with Fastify
-
Learn how to use Clerk to easily add authentication focused on security, speed, and DX to your Fastify server.
After following this guide, you should have a working Fastify app with public and private routes, authenticated using the `clerkPlugin` and `getAuth` helpers.
diff --git a/docs/quickstarts/gatsby.mdx b/docs/quickstarts/gatsby.mdx
index 5e4d829689..e38d6ce522 100644
--- a/docs/quickstarts/gatsby.mdx
+++ b/docs/quickstarts/gatsby.mdx
@@ -3,8 +3,6 @@ title: Use Clerk with Gatsby
description: Learn how to use Clerk to quickly and easily add secure authentication and user management to your Gatsby application.
---
-# Use Clerk with Gatsby
-
Learn how to use Clerk to quickly and easily add secure authentication and user management to your Gatsby application.
diff --git a/docs/quickstarts/javascript.mdx b/docs/quickstarts/javascript.mdx
index 763bf4113f..1db730d8c4 100644
--- a/docs/quickstarts/javascript.mdx
+++ b/docs/quickstarts/javascript.mdx
@@ -3,8 +3,6 @@ title: JavaScript Quickstart
description: Add authentication and user management to your JavaScript app with Clerk.
---
-# JavaScript Quickstart
-
` component for account management.
diff --git a/docs/quickstarts/overview.mdx b/docs/quickstarts/overview.mdx
index 1014258b8a..533489a054 100644
--- a/docs/quickstarts/overview.mdx
+++ b/docs/quickstarts/overview.mdx
@@ -2,3 +2,57 @@
title: Quickstarts
description: Check out our Clerk getting started guides and tutorials.
---
+
+## Get started quickly
+
+
+
+- [Next.js](/docs/quickstarts/nextjs)
+- Easily add secure, beautiful, and fast authentication to Next.js with Clerk.
+- { }
+
+---
+
+- [React](/docs/quickstarts/react)
+- Get started installing and initializing Clerk in a new Create React App.
+- { }
+
+---
+
+- [Remix](/docs/quickstarts/remix)
+- Easily add secure, edge- and SSR-friendly authentication to Remix with Clerk.
+- { }
+
+---
+
+- [Gatsby](/docs/quickstarts/gatsby)
+- Learn about installing and initializing Clerk in a new Gatsby application.
+- { }
+
+---
+
+- [RedwoodJS](/docs/references/redwood/overview)
+- Grow your RedwoodJS application with Clerk user management and authentication.
+- { }
+
+---
+
+- [React Native / Expo](/docs/quickstarts/expo)
+- Use Clerk with Expo to authenticate users in your React Native application.
+- { }
+
+
+
+
+
+- [Join our Discord](/discord 'Join Discord')
+- Join our official Discord server to chat with us directly and become a part of the Clerk community.
+- { }
+
+---
+
+- [Need help?](/support 'Get help')
+- Contact us through Discord, Twitter, or email to receive answers to your questions and learn more about Clerk.
+- { }
+
+
\ No newline at end of file
diff --git a/docs/quickstarts/react.mdx b/docs/quickstarts/react.mdx
index ab5de0935f..8e46fd6685 100644
--- a/docs/quickstarts/react.mdx
+++ b/docs/quickstarts/react.mdx
@@ -3,8 +3,6 @@ title: React Quickstart
description: Add authentication and user management to your React app with Clerk.
---
-# React Quickstart
-
diff --git a/docs/quickstarts/setup-clerk.mdx b/docs/quickstarts/setup-clerk.mdx
index 838805e26b..f9ed5f008a 100644
--- a/docs/quickstarts/setup-clerk.mdx
+++ b/docs/quickstarts/setup-clerk.mdx
@@ -1,10 +1,8 @@
---
-title: Set up Clerk
+title: Set up your Clerk account
description: Set up a new Clerk account and integrate it into a new application.
---
-# Set up your Clerk account
-
## You will learn how to
* Create a Clerk account
diff --git a/docs/references/backend/allowlist/create-allowlist-identifier.mdx b/docs/references/backend/allowlist/create-allowlist-identifier.mdx
index 76605ec631..c54a9423ff 100644
--- a/docs/references/backend/allowlist/create-allowlist-identifier.mdx
+++ b/docs/references/backend/allowlist/create-allowlist-identifier.mdx
@@ -1,10 +1,8 @@
---
-title: createAllowlistIdentifier()
+title: '`createAllowlistIdentifier()`'
description: Adds a new identifier to the allowlist.
---
-# `createAllowlistIdentifier()`
-
Adds a new identifier to the allowlist.
```tsx
diff --git a/docs/references/backend/allowlist/delete-allowlist-identifier.mdx b/docs/references/backend/allowlist/delete-allowlist-identifier.mdx
index 865c2c87c0..0619fe115e 100644
--- a/docs/references/backend/allowlist/delete-allowlist-identifier.mdx
+++ b/docs/references/backend/allowlist/delete-allowlist-identifier.mdx
@@ -1,10 +1,8 @@
---
-title: deleteAllowlistIdentifier()
+title: '`deleteAllowlistIdentifier()`'
description: Deletes an allowlist identifier, given a valid ID. Throws an error if the ID is invalid.
---
-# `deleteAllowlistIdentifier()`
-
Deletes an allowlist identifier, given a valid ID. Throws an error if the ID is invalid.
```tsx
diff --git a/docs/references/backend/allowlist/get-allowlist-identifier-list.mdx b/docs/references/backend/allowlist/get-allowlist-identifier-list.mdx
index 2dd2da53d4..9cc73ecadd 100644
--- a/docs/references/backend/allowlist/get-allowlist-identifier-list.mdx
+++ b/docs/references/backend/allowlist/get-allowlist-identifier-list.mdx
@@ -1,10 +1,8 @@
---
-title: getAllowlistIdentifierList()
+title: '`getAllowlistIdentifierList()`'
description: Retrieves the list of allowlist identifiers.
---
-# `getAllowlistIdentifierList()`
-
Retrieves the list of allowlist identifiers.
```tsx
diff --git a/docs/references/backend/client/get-client-list.mdx b/docs/references/backend/client/get-client-list.mdx
index 2665a79f69..daaf2388da 100644
--- a/docs/references/backend/client/get-client-list.mdx
+++ b/docs/references/backend/client/get-client-list.mdx
@@ -1,5 +1,5 @@
---
-title: getClientList() (deprecated)
+title: '`getClientList()` (deprecated)'
description: Retrieves the list of clients.
---
diff --git a/docs/references/backend/client/get-client.mdx b/docs/references/backend/client/get-client.mdx
index 7cf0fc9130..87796b721c 100644
--- a/docs/references/backend/client/get-client.mdx
+++ b/docs/references/backend/client/get-client.mdx
@@ -1,10 +1,8 @@
---
-title: getClient()
+title: '`getClient()`'
description: Retrieves a single client by its ID, if the ID is valid. Throws an error otherwise.
---
-# `getClient()`
-
Retrieves a single client by its ID, if the ID is valid. Throws an error otherwise.
```tsx
diff --git a/docs/references/backend/client/verify-client.mdx b/docs/references/backend/client/verify-client.mdx
index 3bccdc61a1..c3576582f6 100644
--- a/docs/references/backend/client/verify-client.mdx
+++ b/docs/references/backend/client/verify-client.mdx
@@ -1,10 +1,8 @@
---
-title: verifyClient()
+title: '`verifyClient()`'
description: Retrieves a client for a given session token, if the session is active.
---
-# `verifyClient()`
-
Retrieves a client for a given session token, if the session is active.
```tsx
diff --git a/docs/references/backend/email-addresses/create-email-address.mdx b/docs/references/backend/email-addresses/create-email-address.mdx
index 3b391a6adf..de546f1a08 100644
--- a/docs/references/backend/email-addresses/create-email-address.mdx
+++ b/docs/references/backend/email-addresses/create-email-address.mdx
@@ -1,10 +1,8 @@
---
-title: createEmailAddress()
+title: '`createEmailAddress()`'
description: Use Clerk's Backend SDK to create an email address for the specified user.
---
-# `createEmailAddress()`
-
Creates an [`EmailAddress`](/docs/references/javascript/email-address/email-address) for the specified user.
```tsx
diff --git a/docs/references/backend/email-addresses/delete-email-address.mdx b/docs/references/backend/email-addresses/delete-email-address.mdx
index 52df9f6546..f83f9e3100 100644
--- a/docs/references/backend/email-addresses/delete-email-address.mdx
+++ b/docs/references/backend/email-addresses/delete-email-address.mdx
@@ -1,10 +1,8 @@
---
-title: deleteEmailAddress()
+title: '`deleteEmailAddress()`'
description: Use Clerk's Backend SDK to delete an email address.
---
-# `deleteEmailAddress()`
-
Deletes an [`EmailAddress`](/docs/references/javascript/email-address/email-address) for a given ID.
```tsx
diff --git a/docs/references/backend/email-addresses/get-email-address.mdx b/docs/references/backend/email-addresses/get-email-address.mdx
index 1b30498b0a..dc15fab1f7 100644
--- a/docs/references/backend/email-addresses/get-email-address.mdx
+++ b/docs/references/backend/email-addresses/get-email-address.mdx
@@ -1,10 +1,8 @@
---
-title: getEmailAddress()
+title: '`getEmailAddress()`'
description: Use Clerk's Backend SDK to retrieve a single email address by its ID.
---
-# `getEmailAddress()`
-
Retrieves a single [`EmailAddress`](/docs/references/javascript/email-address/email-address) by its ID.
```tsx
diff --git a/docs/references/backend/email-addresses/update-email-address.mdx b/docs/references/backend/email-addresses/update-email-address.mdx
index 24517b9648..fee32d3768 100644
--- a/docs/references/backend/email-addresses/update-email-address.mdx
+++ b/docs/references/backend/email-addresses/update-email-address.mdx
@@ -1,10 +1,8 @@
---
-title: updateEmailAddress()
+title: '`updateEmailAddress()`'
description: Use Clerk's Backend SDK to update an email address.
---
-# `updateEmailAddress()`
-
Updates an [`EmailAddress`](/docs/references/javascript/email-address/email-address) with a given ID with attribute values provided in a params object.
```tsx
diff --git a/docs/references/backend/invitations/create-invitation.mdx b/docs/references/backend/invitations/create-invitation.mdx
index d96c8a852f..2e7b6f6a91 100644
--- a/docs/references/backend/invitations/create-invitation.mdx
+++ b/docs/references/backend/invitations/create-invitation.mdx
@@ -1,10 +1,8 @@
---
-title: createInvitation()
+title: '`createInvitation()`'
description: Creates a new invitation for the given email address and sends the invitation email.
---
-# `createInvitation()`
-
Creates a new invitation for the given email address and sends the invitation email.
If an email address has already been invited or already exists in your application, trying to create a new invitation will return an error. To bypass this error and create a new invitation anyways, set `ignoreExisting` to `true`.
diff --git a/docs/references/backend/invitations/get-invitation-list.mdx b/docs/references/backend/invitations/get-invitation-list.mdx
index bcfee9dfe3..a3a755a421 100644
--- a/docs/references/backend/invitations/get-invitation-list.mdx
+++ b/docs/references/backend/invitations/get-invitation-list.mdx
@@ -1,10 +1,8 @@
---
-title: getInvitationList()
+title: '`getInvitationList()`'
description: Retrieves a list of all non-revoked invitations for your application, sorted by descending creation date.
---
-# `getInvitationList()`
-
Retrieves a list of all non-revoked invitations for your application, sorted by descending creation date.
```tsx
diff --git a/docs/references/backend/invitations/revoke-invitation.mdx b/docs/references/backend/invitations/revoke-invitation.mdx
index cd3dfb1f1e..c204400b94 100644
--- a/docs/references/backend/invitations/revoke-invitation.mdx
+++ b/docs/references/backend/invitations/revoke-invitation.mdx
@@ -1,10 +1,8 @@
---
-title: revokeInvitation()
+title: '`revokeInvitation()`'
description: Revokes the invitation with the provided `invitationId`. Throws an error if `invitationId` is invalid.
---
-# `revokeInvitation()`
-
Revokes the invitation with the provided `invitationId`. Throws an error if `invitationId` is invalid.
Revoking an invitation makes the invitation email link unusable. However, it doesn't prevent the user from signing up if they follow the sign up flow.
diff --git a/docs/references/backend/organization/create-organization-invitation.mdx b/docs/references/backend/organization/create-organization-invitation.mdx
index ba5594b769..2d769f16fd 100644
--- a/docs/references/backend/organization/create-organization-invitation.mdx
+++ b/docs/references/backend/organization/create-organization-invitation.mdx
@@ -1,10 +1,8 @@
---
-title: createOrganizationInvitation()
+title: '`createOrganizationInvitation()`'
description: Creates an invitation for new users to join an organization.
---
-# `createOrganizationInvitation()`
-
Creates an invitation for new users to join an organization.
```tsx
diff --git a/docs/references/backend/organization/create-organization-membership.mdx b/docs/references/backend/organization/create-organization-membership.mdx
index a16c8f3a8a..efd8c26937 100644
--- a/docs/references/backend/organization/create-organization-membership.mdx
+++ b/docs/references/backend/organization/create-organization-membership.mdx
@@ -1,10 +1,8 @@
---
-title: createOrganizationMembership()
+title: '`createOrganizationMembership()`'
description: Creates membership to an organization for a user directly (circumventing the need for an invitation).
---
-# `createOrganizationMembership()`
-
Creates membership to an organization for a user directly (circumventing the need for an invitation).
```tsx
diff --git a/docs/references/backend/organization/create-organization.mdx b/docs/references/backend/organization/create-organization.mdx
index 739fed398f..0cc1ec5f01 100644
--- a/docs/references/backend/organization/create-organization.mdx
+++ b/docs/references/backend/organization/create-organization.mdx
@@ -1,10 +1,8 @@
---
-title: createOrganization()
+title: '`createOrganization()`'
description: Creates an organization.
---
-# `createOrganization()`
-
Creates an organization.
```tsx
diff --git a/docs/references/backend/organization/delete-organization-membership.mdx b/docs/references/backend/organization/delete-organization-membership.mdx
index 46de91b6bc..301edd7b10 100644
--- a/docs/references/backend/organization/delete-organization-membership.mdx
+++ b/docs/references/backend/organization/delete-organization-membership.mdx
@@ -1,10 +1,8 @@
---
-title: deleteOrganizationMembership()
+title: '`deleteOrganizationMembership()`'
description: Removes a user from the specified organization.
---
-# `deleteOrganizationMembership()`
-
Removes a user from the specified organization.
```tsx
diff --git a/docs/references/backend/organization/delete-organization.mdx b/docs/references/backend/organization/delete-organization.mdx
index 22a86f0a4c..f821bc03ff 100644
--- a/docs/references/backend/organization/delete-organization.mdx
+++ b/docs/references/backend/organization/delete-organization.mdx
@@ -1,10 +1,8 @@
---
-title: deleteOrganization()
+title: '`deleteOrganization()`'
description: Deletes an organization given a valid ID. Throws an error otherwise.
---
-# `deleteOrganization()`
-
Deletes an organization given a valid ID. Throws an error otherwise.
```tsx
diff --git a/docs/references/backend/organization/get-organization-list.mdx b/docs/references/backend/organization/get-organization-list.mdx
index fc247f5edc..d4440a3885 100644
--- a/docs/references/backend/organization/get-organization-list.mdx
+++ b/docs/references/backend/organization/get-organization-list.mdx
@@ -1,10 +1,8 @@
---
-title: getOrganizationList()
+title: '`getOrganizationList()`'
description: Retrieves a list of organizations.
---
-# `getOrganizationList()`
-
Retrieves a list of organizations.
```tsx
diff --git a/docs/references/backend/organization/get-organization-membership-list.mdx b/docs/references/backend/organization/get-organization-membership-list.mdx
index 685cd199e8..c1388e2439 100644
--- a/docs/references/backend/organization/get-organization-membership-list.mdx
+++ b/docs/references/backend/organization/get-organization-membership-list.mdx
@@ -1,10 +1,8 @@
---
-title: getOrganizationMembershipList()
+title: '`getOrganizationMembershipList()`'
description: Retrieves a list of memberships for an organization.
---
-# `getOrganizationMembershipList()`
-
Retrieves a list of memberships for an organization.
```tsx
diff --git a/docs/references/backend/organization/get-organization.mdx b/docs/references/backend/organization/get-organization.mdx
index 172392502f..7e93bb26bc 100644
--- a/docs/references/backend/organization/get-organization.mdx
+++ b/docs/references/backend/organization/get-organization.mdx
@@ -1,10 +1,8 @@
---
-title: getOrganization()
+title: '`getOrganization()`'
description: Retrieves a single organization by the organization ID, if the ID is valid, or by the organization slug.
---
-# `getOrganization()`
-
Retrieves a single organization by the organization ID, if the ID is valid. Throws an error if the organization ID is invalid.
```tsx
diff --git a/docs/references/backend/organization/get-pending-organization-invitation-list.mdx b/docs/references/backend/organization/get-pending-organization-invitation-list.mdx
index 807256f71d..8d6bb6b8f1 100644
--- a/docs/references/backend/organization/get-pending-organization-invitation-list.mdx
+++ b/docs/references/backend/organization/get-pending-organization-invitation-list.mdx
@@ -1,10 +1,8 @@
---
-title: getPendingOrganizationInvitationList()
+title: '`getPendingOrganizationInvitationList()`'
description: Retrieves a list of organization invitations that have not yet been accepted.
---
-# `getPendingOrganizationInvitationList()`
-
Retrieves a list of organization invitations that have not yet been accepted.
```tsx
diff --git a/docs/references/backend/organization/revoke-organization-invitation.mdx b/docs/references/backend/organization/revoke-organization-invitation.mdx
index b78db2c5a8..0ff0b2a05b 100644
--- a/docs/references/backend/organization/revoke-organization-invitation.mdx
+++ b/docs/references/backend/organization/revoke-organization-invitation.mdx
@@ -1,10 +1,8 @@
---
-title: revokeOrganizationInvitation()
+title: '`revokeOrganizationInvitation()`'
description: Revokes an organization invitation from a user for the specified organization.
---
-# `revokeOrganizationInvitation()`
-
Revokes an organization invitation from a user for the specified organization.
```tsx
diff --git a/docs/references/backend/organization/update-organization-membership-metadata.mdx b/docs/references/backend/organization/update-organization-membership-metadata.mdx
index ad5932e1cc..17302ed664 100644
--- a/docs/references/backend/organization/update-organization-membership-metadata.mdx
+++ b/docs/references/backend/organization/update-organization-membership-metadata.mdx
@@ -1,10 +1,8 @@
---
-title: updateOrganizationMembershipMetadata()
+title: '`updateOrganizationMembershipMetadata()`'
description: Updates the metadata associated with a user's organization membership.
---
-# `updateOrganizationMembershipMetadata()`
-
Updates the metadata associated with a user's organization membership.
```tsx
diff --git a/docs/references/backend/organization/update-organization-membership.mdx b/docs/references/backend/organization/update-organization-membership.mdx
index 1295a5b7db..e84fd07106 100644
--- a/docs/references/backend/organization/update-organization-membership.mdx
+++ b/docs/references/backend/organization/update-organization-membership.mdx
@@ -1,10 +1,8 @@
---
-title: updateOrganizationMembership()
+title: '`updateOrganizationMembership()`'
description: Updates a user's organization membership parameters.
---
-# `updateOrganizationMembership()`
-
Updates a user's organization membership parameters. Currently, only the role can be updated.
```tsx
diff --git a/docs/references/backend/organization/update-organization-metadata.mdx b/docs/references/backend/organization/update-organization-metadata.mdx
index 2cc8ef7099..f62bc050a1 100644
--- a/docs/references/backend/organization/update-organization-metadata.mdx
+++ b/docs/references/backend/organization/update-organization-metadata.mdx
@@ -1,10 +1,8 @@
---
-title: updateOrganizationMetadata()
+title: '`updateOrganizationMetadata()`'
description: Updates the metadata associated with the specified organization ID.
---
-# `updateOrganizationMetadata()`
-
Updates the metadata associated with the specified organization ID.
```tsx
diff --git a/docs/references/backend/organization/update-organization.mdx b/docs/references/backend/organization/update-organization.mdx
index b3ad13fade..2ea05e1106 100644
--- a/docs/references/backend/organization/update-organization.mdx
+++ b/docs/references/backend/organization/update-organization.mdx
@@ -1,10 +1,8 @@
---
-title: updateOrganization()
+title: '`updateOrganization()`'
description: Updates the organization name.
---
-# `updateOrganization()`
-
Updates an organization given a valid organization ID. Throws an error if the organization ID is invalid.
```tsx
diff --git a/docs/references/backend/overview.mdx b/docs/references/backend/overview.mdx
index 7c0a1418b1..d0093eacc7 100644
--- a/docs/references/backend/overview.mdx
+++ b/docs/references/backend/overview.mdx
@@ -3,8 +3,6 @@ title: Clerk Backend SDK
description: The Clerk Backend SDK exposes Clerk's backend API resources and low-level authentication utilities for JavaScript environments.
---
-# Clerk Backend SDK
-
The [Clerk Backend SDK](https://github.com/clerk/javascript/tree/main/packages/backend) exposes Clerk's backend API resources and low-level authentication utilities for JavaScript environments. While the backend SDK is mainly used as a building block for Clerk's higher-level SDKs, it can also be used on its own for advanced flows and custom integrations.
Clerk SDKs expose an instance of the Clerk Backend SDK for use in server environments.
diff --git a/docs/references/backend/sessions/authenticate-request.mdx b/docs/references/backend/sessions/authenticate-request.mdx
index ac114c897b..906b2784d3 100644
--- a/docs/references/backend/sessions/authenticate-request.mdx
+++ b/docs/references/backend/sessions/authenticate-request.mdx
@@ -1,10 +1,8 @@
---
-title: authenticateRequest()
+title: '`authenticateRequest()`'
description: Networkless method to verify a token passed from the frontend.
---
-# `authenticateRequest()`
-
Authenticates a token passed from the frontend. Networkless if the `secretKey` or `jwtKey` are provided. Otherwise, performs a network call to retrieve the JWKS from Clerk's Backend API.
```tsx
diff --git a/docs/references/backend/sessions/get-session-list.mdx b/docs/references/backend/sessions/get-session-list.mdx
index be7fba5a76..223444fcd2 100644
--- a/docs/references/backend/sessions/get-session-list.mdx
+++ b/docs/references/backend/sessions/get-session-list.mdx
@@ -1,10 +1,8 @@
---
-title: getSessionList()
+title: '`getSessionList()`'
description: Retrieves a list of sessions.
---
-# `getSessionList()`
-
Retrieves a list of sessions.
```tsx
diff --git a/docs/references/backend/sessions/get-session.mdx b/docs/references/backend/sessions/get-session.mdx
index 9324118dc9..606b3b2cbd 100644
--- a/docs/references/backend/sessions/get-session.mdx
+++ b/docs/references/backend/sessions/get-session.mdx
@@ -1,10 +1,8 @@
---
-title: getSession()
+title: '`getSession()`'
description: Retrieves a single session by its ID, if the ID is valid. Throws an error otherwise.
---
-# `getSession()`
-
Retrieves a single session by its ID, if the ID is valid. Throws an error otherwise.
```tsx
diff --git a/docs/references/backend/sessions/get-token.mdx b/docs/references/backend/sessions/get-token.mdx
index f831eb970e..89dfd38543 100644
--- a/docs/references/backend/sessions/get-token.mdx
+++ b/docs/references/backend/sessions/get-token.mdx
@@ -1,10 +1,8 @@
---
-title: getToken()
+title: '`getToken()`'
description: Retrieves a token for a JWT Template that is defined in the Clerk Dashboard.
---
-# `getToken()`
-
Retrieves a token for a JWT Template that is defined in the Clerk Dashboard on the **[JWT Templates](https://dashboard.clerk.com/last-active?path=jwt-templates)** page.
```js
diff --git a/docs/references/backend/sessions/revoke-session.mdx b/docs/references/backend/sessions/revoke-session.mdx
index 7c6500ad1b..4c6e4a1d03 100644
--- a/docs/references/backend/sessions/revoke-session.mdx
+++ b/docs/references/backend/sessions/revoke-session.mdx
@@ -1,10 +1,8 @@
---
-title: revokeSession()
+title: '`revokeSession()`'
description: Revokes a session given its ID, if the ID is valid. Throws an error otherwise.
---
-# `revokeSession()`
-
Revokes a session given its ID, if the ID is valid. Throws an error otherwise.
User will be signed out from the particular client the referred to.
diff --git a/docs/references/backend/sessions/verify-session.mdx b/docs/references/backend/sessions/verify-session.mdx
index c0ff272bda..c734baf551 100644
--- a/docs/references/backend/sessions/verify-session.mdx
+++ b/docs/references/backend/sessions/verify-session.mdx
@@ -1,5 +1,5 @@
---
-title: verifySession() (deprecated)
+title: '`verifySession()` (deprecated)'
description: Use Clerk's Backend SDK to to verify whether a session with a given ID corresponds to the provided session token.
---
diff --git a/docs/references/backend/types/backend-user.mdx b/docs/references/backend/types/backend-user.mdx
index f34e14ca56..6b8447fff0 100644
--- a/docs/references/backend/types/backend-user.mdx
+++ b/docs/references/backend/types/backend-user.mdx
@@ -1,10 +1,8 @@
---
-title: The Backend User object
+title: The Backend `User` object
description: The Backend User object holds information about a user of your application. However, the Backend User object is different from the User object in that it is used in the Backend API.
---
-# The Backend `User` object
-
The Backend `User` object is similar to the `User` object as it holds information about a user of your application, such as their unique identifier, name, email addresses, phone numbers, and more. However, the Backend `User` object is different from the `User` object in that it is used in the [Backend API](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUser) and is not directly accessible from the Frontend API.
## Properties
diff --git a/docs/references/backend/types/paginated-resource-response.mdx b/docs/references/backend/types/paginated-resource-response.mdx
index a0edc9f798..2abaa00f97 100644
--- a/docs/references/backend/types/paginated-resource-response.mdx
+++ b/docs/references/backend/types/paginated-resource-response.mdx
@@ -1,10 +1,8 @@
---
-title: PaginatedResourceResponse
+title: '`PaginatedResourceResponse`'
description: An interface that describes the response of a method that returns a paginated list of resources.
---
-# `PaginatedResourceResponse`
-
An interface that describes the response of a method that returns a paginated list of resources.
## Properties
diff --git a/docs/references/backend/user/create-user.mdx b/docs/references/backend/user/create-user.mdx
index 1b9363cd9d..e0b46ae33d 100644
--- a/docs/references/backend/user/create-user.mdx
+++ b/docs/references/backend/user/create-user.mdx
@@ -1,10 +1,8 @@
---
-title: createUser() | User Object
+title: '`createUser()`'
description: Creates a user. Your user management settings determine how you should setup your user model.
---
-# `createUser()`
-
Creates a user. Your user management settings determine how you should setup your user model.
Any email address and phone number created using this method will be automatically marked as verified.
diff --git a/docs/references/backend/user/delete-user.mdx b/docs/references/backend/user/delete-user.mdx
index 9eec2bbc17..5a8dfbb28f 100644
--- a/docs/references/backend/user/delete-user.mdx
+++ b/docs/references/backend/user/delete-user.mdx
@@ -1,10 +1,8 @@
---
-title: deleteUser() | User Object
+title: '`deleteUser()`'
description: Deletes a user given a valid ID. Throws an error otherwise.
---
-# `deleteUser()`
-
Deletes a user given a valid ID. Throws an error otherwise.
```tsx
diff --git a/docs/references/backend/user/get-count.mdx b/docs/references/backend/user/get-count.mdx
index dd1be50c7e..50b8565240 100644
--- a/docs/references/backend/user/get-count.mdx
+++ b/docs/references/backend/user/get-count.mdx
@@ -1,10 +1,8 @@
---
-title: getCount() | User Object
+title: '`getCount()`'
description: Retrieves the total number of users.
---
-# `getCount()`
-
Retrieves the total number of users.
```tsx
diff --git a/docs/references/backend/user/get-user-list.mdx b/docs/references/backend/user/get-user-list.mdx
index c5985b1589..440a4458a9 100644
--- a/docs/references/backend/user/get-user-list.mdx
+++ b/docs/references/backend/user/get-user-list.mdx
@@ -1,10 +1,8 @@
---
-title: getUserList() | User Object
+title: '`getUserList()`'
description: The getUserList() method retrieves a list of users.
---
-# `getUserList()`
-
Retrieves a list of users.
```tsx
diff --git a/docs/references/backend/user/get-user-oauth-access-token.mdx b/docs/references/backend/user/get-user-oauth-access-token.mdx
index e09335988b..b8e13e11f9 100644
--- a/docs/references/backend/user/get-user-oauth-access-token.mdx
+++ b/docs/references/backend/user/get-user-oauth-access-token.mdx
@@ -1,10 +1,8 @@
---
-title: getUserOauthAccessToken()
+title: '`getUserOauthAccessToken()`'
description: Use Clerk's Backend SDK to retrieve the corresponding OAuth access token for a user.
---
-# `getUserOauthAccessToken()`
-
Retrieve the corresponding OAuth access token for a user that has previously authenticated with a particular OAuth provider.
```tsx
diff --git a/docs/references/backend/user/get-user.mdx b/docs/references/backend/user/get-user.mdx
index 80db9c2111..4cbadb8e7f 100644
--- a/docs/references/backend/user/get-user.mdx
+++ b/docs/references/backend/user/get-user.mdx
@@ -1,10 +1,8 @@
---
-title: getUser() | User Object
+title: '`getUser()`'
description: Retrieves a single user by their ID, if the ID is valid. Throws an error otherwise.
---
-# `getUser()`
-
Retrieves a single user by their ID, if the ID is valid. Throws an error otherwise.
```tsx
diff --git a/docs/references/backend/user/update-user-metadata.mdx b/docs/references/backend/user/update-user-metadata.mdx
index d3bb337761..789d313cb6 100644
--- a/docs/references/backend/user/update-user-metadata.mdx
+++ b/docs/references/backend/user/update-user-metadata.mdx
@@ -1,10 +1,8 @@
---
-title: updateUserMetadata()
+title: '`updateUserMetadata()`'
description: Use Clerk's Backend SDK to update the metadata associated with the specified user.
---
-# `updateUserMetadata()`
-
Updates the metadata associated with the specified user.
```tsx
diff --git a/docs/references/backend/user/update-user.mdx b/docs/references/backend/user/update-user.mdx
index 0458dd5334..db14933480 100644
--- a/docs/references/backend/user/update-user.mdx
+++ b/docs/references/backend/user/update-user.mdx
@@ -1,10 +1,8 @@
---
-title: updateUser() | User Object
+title: '`updateUser()`'
description: Updates a user with a given ID with attribute values provided in a params object.
---
-# `updateUser()`
-
Updates a user with a given ID with attribute values provided in a params object.
The provided ID must be valid, otherwise an error will be thrown.
diff --git a/docs/references/gatsby/with-server-auth.mdx b/docs/references/gatsby/with-server-auth.mdx
index fb08f5503d..9165a831d6 100644
--- a/docs/references/gatsby/with-server-auth.mdx
+++ b/docs/references/gatsby/with-server-auth.mdx
@@ -1,10 +1,8 @@
---
-title: withServerAuth()
+title: '`withServerAuth()`'
description: The withServerAuth() function facilitates server-side authentication and provides options for data retrieval and authorization control for Clerk Components in a Gatsby application.
---
-# `withServerAuth()`
-
## Usage
```tsx
diff --git a/docs/references/go/other-examples.mdx b/docs/references/go/other-examples.mdx
index e51d121616..b6e6a97a18 100644
--- a/docs/references/go/other-examples.mdx
+++ b/docs/references/go/other-examples.mdx
@@ -3,8 +3,6 @@ title: Use Clerk Go for Backend API Operations
description: Explore different examples of how to utilize Clerk with Go.
---
-# Use Clerk Go for Backend API Operations
-
The following example demonstrates how to use the Clerk Go SDK to execute [Clerk Backend API](/docs/references/backend/overview) operations.
By executing the code in the snippet below, you will:
diff --git a/docs/references/go/overview.mdx b/docs/references/go/overview.mdx
index a760bb3f94..7ae3fc823f 100644
--- a/docs/references/go/overview.mdx
+++ b/docs/references/go/overview.mdx
@@ -3,8 +3,6 @@ title: Clerk Go SDK
description: Learn how to integrate Go into your Clerk application.
---
-# Clerk Go SDK
-
The [Clerk Go SDK](https://github.com/clerk/clerk-sdk-go) is a wrapper over the [Clerk Backend API](https://clerk.com/docs/reference/backend-api).
## Installation
diff --git a/docs/references/go/verifying-sessions.mdx b/docs/references/go/verifying-sessions.mdx
index 6b765b0daa..46e8f507fc 100644
--- a/docs/references/go/verifying-sessions.mdx
+++ b/docs/references/go/verifying-sessions.mdx
@@ -3,8 +3,6 @@ title: Verify a Clerk session in Go
description: Learn how to verify a session with Clerk in your Go application.
---
-# Verify a Clerk session in Go
-
There are two ways to verify a session with Clerk in your Go application:
- [Using Clerk middleware](#use-clerk-middleware-to-verify-a-session)
If you want to verify a session in an HTTP context, it is recommended to use Clerk middleware. Clerk middleware guarantees better performance and efficiency by making the minimum necessary requests to the Clerk Backend API.
diff --git a/docs/references/javascript/clerk/build-urls.mdx b/docs/references/javascript/clerk/build-urls.mdx
index c17efeff4f..0a2935b938 100644
--- a/docs/references/javascript/clerk/build-urls.mdx
+++ b/docs/references/javascript/clerk/build-urls.mdx
@@ -3,8 +3,6 @@ title: Build URLs
description: These are all methods on the Clerk class that help you manage URL creation on the Clerk dashboard configuration.
---
-# Build URLs
-
These are all methods on [the Clerk class](/docs/references/javascript/clerk/clerk) that help you manage URL creation on the Clerk dashboard configuration.
## `buildUrlWithAuth()`
diff --git a/docs/references/javascript/clerk/clerk.mdx b/docs/references/javascript/clerk/clerk.mdx
index 8cb89ac624..0de61657df 100644
--- a/docs/references/javascript/clerk/clerk.mdx
+++ b/docs/references/javascript/clerk/clerk.mdx
@@ -1,10 +1,8 @@
---
-title: Clerk class
+title: '`Clerk` class'
description: The Clerk class is the main entrypoint class for the `@clerk/clerk-js` package. It contains a number of methods and properties for interacting with the Clerk API.
---
-# `Clerk` class
-
The `Clerk` class is the main entrypoint class for the `@clerk/clerk-js` package. It contains a number of methods and properties for interacting with the Clerk API.
## Properties
diff --git a/docs/references/javascript/clerk/handle-navigation.mdx b/docs/references/javascript/clerk/handle-navigation.mdx
index 1e5a68ea42..1c62a9d70d 100644
--- a/docs/references/javascript/clerk/handle-navigation.mdx
+++ b/docs/references/javascript/clerk/handle-navigation.mdx
@@ -3,8 +3,6 @@ title: Handle navigation
description: These are all methods on the Clerk class that help you handle navigation callbacks from Clerk, usually in conjunction with redirect methods or built urls.
---
-# Handle navigation
-
These are all methods on [the Clerk class](/docs/references/javascript/clerk/clerk) that help you handle navigation callbacks from Clerk, usually in conjunction with [redirect methods](/docs/references/javascript/clerk/redirect-methods) or [built URLs](/docs/references/javascript/clerk/build-urls).
## `handleMagicLinkVerification()`
diff --git a/docs/references/javascript/clerk/organization-methods.mdx b/docs/references/javascript/clerk/organization-methods.mdx
index d6b2a89949..271c5c7653 100644
--- a/docs/references/javascript/clerk/organization-methods.mdx
+++ b/docs/references/javascript/clerk/organization-methods.mdx
@@ -3,8 +3,6 @@ title: Organization methods
description: Explore methods on the Clerk class that allow you to create and read information about Organizations.
---
-# Organization methods
-
These methods on the [`Clerk`](/docs/references/javascript/clerk/clerk) class allow you to create and read information about [Organizations](/docs/references/javascript/organization/organization).
The following examples assume:
diff --git a/docs/references/javascript/clerk/redirect-methods.mdx b/docs/references/javascript/clerk/redirect-methods.mdx
index 0cf5652faf..0d32db9847 100644
--- a/docs/references/javascript/clerk/redirect-methods.mdx
+++ b/docs/references/javascript/clerk/redirect-methods.mdx
@@ -3,8 +3,6 @@ title: Redirect methods
description: Explore methods on the Clerk class that help you manage route navigation based on the Clerk dashboard configuration.
---
-# Redirect methods
-
These methods on the [`Clerk`](/docs/references/javascript/clerk/clerk) class help you manage route navigation based on the Clerk dashboard configuration.
## `navigate()`
diff --git a/docs/references/javascript/clerk/session-methods.mdx b/docs/references/javascript/clerk/session-methods.mdx
index aad258d998..da1bf8d61e 100644
--- a/docs/references/javascript/clerk/session-methods.mdx
+++ b/docs/references/javascript/clerk/session-methods.mdx
@@ -3,8 +3,6 @@ title: Session methods
description: Explore methods on the Clerk class that help you manage the active session and/or organization.
---
-# Session methods
-
These methods on the [`Clerk`](/docs/references/javascript/clerk/clerk) class help you manage the active session and/or organization.
## `setSession()` (deprecated)
diff --git a/docs/references/javascript/client.mdx b/docs/references/javascript/client.mdx
index daad790cae..460c9c440a 100644
--- a/docs/references/javascript/client.mdx
+++ b/docs/references/javascript/client.mdx
@@ -1,10 +1,8 @@
---
-title: Client
+title: '`Client`'
description: The Client object keeps track of the authenticated sessions in the current device. The device can be a browser, a native application or any other medium that is usually the requesting part in a request/response architecture.
---
-# `Client`
-
The `Client` object keeps track of the authenticated sessions in the current device. The device can be a browser, a native application or any other medium that is usually the requesting part in a request/response architecture.
The `Client` object also holds information about any sign in or sign up attempts that might be in progress, tracking the sign in or sign up progress.
diff --git a/docs/references/javascript/email-address/email-address.mdx b/docs/references/javascript/email-address/email-address.mdx
index e85a170520..102fd803dd 100644
--- a/docs/references/javascript/email-address/email-address.mdx
+++ b/docs/references/javascript/email-address/email-address.mdx
@@ -1,10 +1,8 @@
---
-title: EmailAddress
+title: '`EmailAddress`'
description: The EmailAddress object is a model around an email address. Email addresses are used to provide identification for users.
---
-# `EmailAddress`
-
The `EmailAddress` object is a model around an email address. Email addresses are used to provide identification for users.
Email addresses must be verified to ensure that they can be assigned to their rightful owners. The `EmailAddress` object holds all necessary state around the verification process.
diff --git a/docs/references/javascript/email-address/verification.mdx b/docs/references/javascript/email-address/verification.mdx
index 19dfa69793..51245b9053 100644
--- a/docs/references/javascript/email-address/verification.mdx
+++ b/docs/references/javascript/email-address/verification.mdx
@@ -1,10 +1,8 @@
---
-title: EmailAddress verification
+title: '`EmailAddress` verification'
description: These are all methods on the EmailAddress class that allow you to verify a user's email address.
---
-# `EmailAddress` verification
-
These are all methods on the [`EmailAddress`](/docs/references/javascript/email-address/email-address) class that allow you to verify a user's email address.
## `prepareVerification()`
diff --git a/docs/references/javascript/external-account.mdx b/docs/references/javascript/external-account.mdx
index 616172a7be..ed4bc9b327 100644
--- a/docs/references/javascript/external-account.mdx
+++ b/docs/references/javascript/external-account.mdx
@@ -1,10 +1,8 @@
---
-title: ExternalAccount
+title: '`ExternalAccount`'
description: The ExternalAccount object is a model around an identification obtained by an external provider (e.g. an OAuth provider such as Google).
---
-# `ExternalAccount`
-
The `ExternalAccount` object is a model around an identification obtained by an external provider (e.g. an OAuth provider such as Google).
External account must be verified, so that you can make sure they can be assigned to their rightful owners. The `ExternalAccount` object holds all necessary state around the verification process.
diff --git a/docs/references/javascript/organization-domain.mdx b/docs/references/javascript/organization-domain.mdx
index e844b768a7..a1c4fcf259 100644
--- a/docs/references/javascript/organization-domain.mdx
+++ b/docs/references/javascript/organization-domain.mdx
@@ -1,10 +1,8 @@
---
-title: OrganizationDomain
+title: '`OrganizationDomain`'
description: The OrganizationDomain object is the model around an organization domain.
---
-# `OrganizationDomain`
-
The `OrganizationDomain` object is the model around an organization domain.
## Properties
diff --git a/docs/references/javascript/organization-invitation.mdx b/docs/references/javascript/organization-invitation.mdx
index f7a2a7583d..ea0e3ca44d 100644
--- a/docs/references/javascript/organization-invitation.mdx
+++ b/docs/references/javascript/organization-invitation.mdx
@@ -1,10 +1,8 @@
---
-title: OrganizationInvitation
+title: '`OrganizationInvitation`'
description: The OrganizationInvitation object is the model around an organization invitation.
---
-# `OrganizationInvitation`
-
The `OrganizationInvitation` object is the model around an organization invitation.
## Properties
diff --git a/docs/references/javascript/organization-membership-request.mdx b/docs/references/javascript/organization-membership-request.mdx
index 9d7d446b9b..4139a8ff2b 100644
--- a/docs/references/javascript/organization-membership-request.mdx
+++ b/docs/references/javascript/organization-membership-request.mdx
@@ -1,10 +1,8 @@
---
-title: OrganizationMembershipRequest
+title: '`OrganizationMembershipRequest`'
description: The OrganizationMembershipRequest object is the model that describes the request of a user to join an organization.
---
-# `OrganizationMembershipRequest`
-
The `OrganizationMembershipRequest` object is the model that describes the request of a user to join an organization.
## Properties
diff --git a/docs/references/javascript/organization-membership.mdx b/docs/references/javascript/organization-membership.mdx
index 54ef87ef55..5f095e4840 100644
--- a/docs/references/javascript/organization-membership.mdx
+++ b/docs/references/javascript/organization-membership.mdx
@@ -1,10 +1,8 @@
---
-title: OrganizationMembership
+title: '`OrganizationMembership`'
description: The OrganizationMembership object is the model around an organization membership entity and describes the relationship between users and organizations.
---
-# `OrganizationMembership`
-
The `OrganizationMembership` object is the model around an organization membership entity and describes the relationship between users and organizations.
## Properties
diff --git a/docs/references/javascript/organization/domains.mdx b/docs/references/javascript/organization/domains.mdx
index 42269d2696..4ca607c21f 100644
--- a/docs/references/javascript/organization/domains.mdx
+++ b/docs/references/javascript/organization/domains.mdx
@@ -3,8 +3,6 @@ title: Organization domain methods
description: Learn about the methods on the Organization object that allow you to manage the domains of an organization.
---
-# Organization domain methods
-
These methods on the [`Organization`](/docs/references/javascript/organization/organization) object allow you to manage the domains of an organization.
The following examples assume:
diff --git a/docs/references/javascript/organization/invitations.mdx b/docs/references/javascript/organization/invitations.mdx
index c96dd1b5cd..9498063aaf 100644
--- a/docs/references/javascript/organization/invitations.mdx
+++ b/docs/references/javascript/organization/invitations.mdx
@@ -3,8 +3,6 @@ title: Organization invitation methods
description: Learn about the methods on the Organization object that allow you to manage the invitations to an organization.
---
-# Organization invitation methods
-
These methods on the [`Organization`](/docs/references/javascript/organization/organization) object allow you to manage the invitations to an organization.
The following examples assume:
diff --git a/docs/references/javascript/organization/members.mdx b/docs/references/javascript/organization/members.mdx
index 9dab26e378..544f4543d5 100644
--- a/docs/references/javascript/organization/members.mdx
+++ b/docs/references/javascript/organization/members.mdx
@@ -3,8 +3,6 @@ title: Organization membership methods
description: Learn about the methods on the Organization object that allow you to manage the members of an organization.
---
-# Organization membership methods
-
Organizations must be enabled in your Clerk settings for these methods to work. See the [Organizations overview](/docs/organizations/overview#enable-organizations-in-your-application) to learn more.
diff --git a/docs/references/javascript/organization/membership-request.mdx b/docs/references/javascript/organization/membership-request.mdx
index 71b482ccd4..7707c4c7fa 100644
--- a/docs/references/javascript/organization/membership-request.mdx
+++ b/docs/references/javascript/organization/membership-request.mdx
@@ -3,8 +3,6 @@ title: Organization membership requests
description: Learn about the methods on the Organization object that allow you to manage the membership requests for an organization.
---
-# Organization membership requests
-
These methods on the [`Organization`](/docs/references/javascript/organization/organization) object allow you to manage the membership requests for an organization.
The following examples assume:
diff --git a/docs/references/javascript/organization/organization.mdx b/docs/references/javascript/organization/organization.mdx
index d8be8462a7..d8e441323d 100644
--- a/docs/references/javascript/organization/organization.mdx
+++ b/docs/references/javascript/organization/organization.mdx
@@ -1,10 +1,8 @@
---
-title: Organization object
+title: '`Organization` object'
description: The Organization object holds information about an organization, as well as methods for managing it.
---
-# `Organization` object
-
The `Organization` object holds information about an organization, as well as methods for managing it.
The following examples assume:
diff --git a/docs/references/javascript/overview.mdx b/docs/references/javascript/overview.mdx
index 0fe19a5f16..1c83845ace 100644
--- a/docs/references/javascript/overview.mdx
+++ b/docs/references/javascript/overview.mdx
@@ -3,8 +3,6 @@ title: ClerkJS
description: ClerkJS is Clerk's foundational JavaScript library for building user management and authentication.
---
-# ClerkJS
-
ClerkJS is our foundational JavaScript library for building user management and authentication. It enables you to register, sign in, verify and manage users for your application using highly customizable flows.
While we typically recommend using one of our framework SDK's, such as [Clerk React](/docs/quickstarts/react) or [Clerk Next.js](/docs/quickstarts/nextjs), having the ability to use the underlying ClerkJS package provides more freedom to use Clerk how you best see fit.
diff --git a/docs/references/javascript/phone-number/phone-number.mdx b/docs/references/javascript/phone-number/phone-number.mdx
index 5d48db138d..0271901b11 100644
--- a/docs/references/javascript/phone-number/phone-number.mdx
+++ b/docs/references/javascript/phone-number/phone-number.mdx
@@ -1,10 +1,8 @@
---
-title: PhoneNumber
+title: '`PhoneNumber`'
description: The PhoneNumber object describes a phone number. Phone numbers can be used as a proof of identification for users, or simply as a means of contacting users.
---
-# `PhoneNumber`
-
The `PhoneNumber` object describes a phone number. Phone numbers can be used as a proof of identification for users, or simply as a means of contacting users.
Phone numbers must be verified to ensure that they can be assigned to their rightful owners. The `PhoneNumber` object holds all the necessary state around the verification process.
diff --git a/docs/references/javascript/phone-number/second-factor.mdx b/docs/references/javascript/phone-number/second-factor.mdx
index 6ae627429c..d7b1a86ce3 100644
--- a/docs/references/javascript/phone-number/second-factor.mdx
+++ b/docs/references/javascript/phone-number/second-factor.mdx
@@ -1,10 +1,8 @@
---
-title: PhoneNumber second factor
+title: '`PhoneNumber` second factor'
description: These are all methods on the PhoneNumber class that allow you configure the configuration of a phone number as a second factor for multi-factor authentication (MFA).
---
-# `PhoneNumber` second factor
-
These are all methods on the [`PhoneNumber`](/docs/references/javascript/phone-number/phone-number) class that allow you configure the configuration of a phone number as a second factor for multi-factor authentication (MFA).
## `makeDefaultSecondFactor()`
diff --git a/docs/references/javascript/phone-number/verification.mdx b/docs/references/javascript/phone-number/verification.mdx
index ac25b10758..00395c6538 100644
--- a/docs/references/javascript/phone-number/verification.mdx
+++ b/docs/references/javascript/phone-number/verification.mdx
@@ -1,10 +1,8 @@
---
-title: PhoneNumber Verification
+title: '`PhoneNumber` verification'
description: These are all methods on the PhoneNumber class that allow you to verify a user's phone number.
---
-# `PhoneNumber` verification
-
These are all methods on the [`PhoneNumber`](/docs/references/javascript/phone-number/phone-number) class that allow you to verify a user's phone number.
## `prepareVerification()`
diff --git a/docs/references/javascript/session-with-activities.mdx b/docs/references/javascript/session-with-activities.mdx
index f429071c04..8788ad7d56 100644
--- a/docs/references/javascript/session-with-activities.mdx
+++ b/docs/references/javascript/session-with-activities.mdx
@@ -1,10 +1,8 @@
---
-title: SessionWithActivities
+title: '`SessionWithActivities`'
description: The SessionWithActivities object is a modified Session object. It contains most of the information that the Session object stores, adding extra information about the current session's latest activity.
---
-# `SessionWithActivities`
-
The `SessionWithActivities` object is a modified [`Session`][session-ref] object. It contains most of the information that the [`Session`][session-ref] object stores, adding extra information about the current session's latest activity.
The additional data included in the latest activity are useful for analytics purposes. A [`SessionActivity`](#session-activity) object will provide information about the user's location, device and browser.
diff --git a/docs/references/javascript/session.mdx b/docs/references/javascript/session.mdx
index 492d9cff1d..1223adc708 100644
--- a/docs/references/javascript/session.mdx
+++ b/docs/references/javascript/session.mdx
@@ -1,10 +1,8 @@
---
-title: Session
+title: '`Session`'
description: The Session object is an abstraction over an HTTP session. It models the period of information exchange between a user and the server.
---
-# `Session`
-
The `Session` object is an abstraction over an HTTP session. It models the period of information exchange between a user and the server.
The `Session` object includes methods for recording session activity and ending the session client-side. For security reasons, sessions can also expire server-side.
diff --git a/docs/references/javascript/sign-in/authenticate-with.mdx b/docs/references/javascript/sign-in/authenticate-with.mdx
index a867aa545e..93d8a51764 100644
--- a/docs/references/javascript/sign-in/authenticate-with.mdx
+++ b/docs/references/javascript/sign-in/authenticate-with.mdx
@@ -3,8 +3,6 @@ title: AuthenticateWith
description: These are all methods on the SignIn class that allow you to authenticate with different methods.
---
-# AuthenticateWith
-
These are all methods on the [`SignIn`][signin-ref] class that allow you to authenticate with different methods.
## Methods
diff --git a/docs/references/javascript/sign-in/first-factor.mdx b/docs/references/javascript/sign-in/first-factor.mdx
index 117ad0a5ef..76a296ed57 100644
--- a/docs/references/javascript/sign-in/first-factor.mdx
+++ b/docs/references/javascript/sign-in/first-factor.mdx
@@ -3,8 +3,6 @@ title: First factor
description: These are all methods on the SignIn class that allow you to handle the first factor of a multi-factor authentication flow.
---
-# First factor
-
These are all methods on the [`SignIn`](/docs/references/javascript/sign-in/sign-in) class that allow you to handle the first factor of a multi-factor authentication flow.
## `prepareFirstFactor()`
diff --git a/docs/references/javascript/sign-in/second-factor.mdx b/docs/references/javascript/sign-in/second-factor.mdx
index fd86fc6d87..dc7bf6c48c 100644
--- a/docs/references/javascript/sign-in/second-factor.mdx
+++ b/docs/references/javascript/sign-in/second-factor.mdx
@@ -3,8 +3,6 @@ title: Second factor
description: These are all methods on the SignIn class that allow you to handle the second factor of a multi-factor authentication flow.
---
-# Second factor
-
These are all methods on the [`SignIn`][signin-ref] class that allow you to handle the second factor of a multi-factor authentication flow.
## `prepareSecondFactor()`
diff --git a/docs/references/javascript/sign-in/sign-in.mdx b/docs/references/javascript/sign-in/sign-in.mdx
index f53406e6c6..67094fdbee 100644
--- a/docs/references/javascript/sign-in/sign-in.mdx
+++ b/docs/references/javascript/sign-in/sign-in.mdx
@@ -1,10 +1,8 @@
---
-title: SignIn
+title: '`SignIn`'
description: The SignIn object holds all the state of the current sign in and provides helper methods to navigate and complete the sign in process.
---
-# `SignIn`
-
The `SignIn` object holds all the state of the current sign in and provides helper methods to navigate and complete the sign in process.
There are two important steps in the sign in flow.
diff --git a/docs/references/javascript/sign-up/authenticate-with.mdx b/docs/references/javascript/sign-up/authenticate-with.mdx
index 95b33ca3f2..85843f0177 100644
--- a/docs/references/javascript/sign-up/authenticate-with.mdx
+++ b/docs/references/javascript/sign-up/authenticate-with.mdx
@@ -3,8 +3,6 @@ title: AuthenticateWith
description: These are all methods on the SignUp class that allow you to authenticate with different methods.
---
-# AuthenticateWith
-
These are all methods on the [`SignUp`][signup-ref] class that allow you to authenticate with different methods.
## `authenticateWithRedirect()`
diff --git a/docs/references/javascript/sign-up/email-verification.mdx b/docs/references/javascript/sign-up/email-verification.mdx
index 0ffdd60de3..51085a455e 100644
--- a/docs/references/javascript/sign-up/email-verification.mdx
+++ b/docs/references/javascript/sign-up/email-verification.mdx
@@ -1,10 +1,8 @@
---
-title: Email Verification
+title: Email verification
description: These are all methods on the SignUp class that allow you to verify a user's sign-up request via email.
---
-# Email verification
-
These are all methods on the [`SignUp`](/docs/references/javascript/sign-up/sign-up) class that allow you to verify a user's sign-up request via email.
## `prepareEmailAddressVerification()`
diff --git a/docs/references/javascript/sign-up/phone-verification.mdx b/docs/references/javascript/sign-up/phone-verification.mdx
index ac2620903b..01c325d258 100644
--- a/docs/references/javascript/sign-up/phone-verification.mdx
+++ b/docs/references/javascript/sign-up/phone-verification.mdx
@@ -1,10 +1,8 @@
---
-title: Phone Verification
+title: Phone verification
description: These are all methods on the SignUp class that allow you to verify a user's sign-up request via a phone number.
---
-# Phone verification
-
These are all methods on the [`SignUp`][signup-ref] class that allow you to verify a user's sign-up request via a phone number.
## `preparePhoneNumberVerification()`
diff --git a/docs/references/javascript/sign-up/sign-up.mdx b/docs/references/javascript/sign-up/sign-up.mdx
index b9b418d93a..2b58212d13 100644
--- a/docs/references/javascript/sign-up/sign-up.mdx
+++ b/docs/references/javascript/sign-up/sign-up.mdx
@@ -1,10 +1,8 @@
---
-title: SignUp
+title: '`SignUp`'
description: The SignUp object holds the state of the current sign-up and provides helper methods to navigate and complete the sign-up flow. Once a sign-up is complete, a new user is created.
---
-# `SignUp`
-
The `SignUp` object holds the state of the current sign-up and provides helper methods to navigate and complete the [sign-up flow](/docs/custom-flows/overview#sign-up-flow). Once a sign-up is complete, a new user is created.
There are two important steps that need to be done in order for a sign-up to be completed:
diff --git a/docs/references/javascript/sign-up/verification.mdx b/docs/references/javascript/sign-up/verification.mdx
index a4fc017dda..db345bc3a7 100644
--- a/docs/references/javascript/sign-up/verification.mdx
+++ b/docs/references/javascript/sign-up/verification.mdx
@@ -3,8 +3,6 @@ title: Verification
description: These are all methods on the SignUp class that allow you to verify a user's sign-up request.
---
-# Verification
-
These are all methods on the [`SignUp`](/docs/references/javascript/sign-up/sign-up) class that allow you to verify a user's sign-up request.
## `prepareVerification()`
diff --git a/docs/references/javascript/sign-up/web3-verification.mdx b/docs/references/javascript/sign-up/web3-verification.mdx
index e10b14681c..0334df017b 100644
--- a/docs/references/javascript/sign-up/web3-verification.mdx
+++ b/docs/references/javascript/sign-up/web3-verification.mdx
@@ -1,10 +1,8 @@
---
-title: Web3 Verification
+title: Web3 verification
description: These are all methods on the SignUp class that allow you to verify a user's sign-up request via a web3 wallet.
---
-# Web3 verification
-
These are all methods on the [`SignUp`][signup-ref] class that allow you to verify a user's sign-up request via a web3 wallet.
## `prepareWeb3WalletVerification()`
diff --git a/docs/references/javascript/types/clerk-paginated-response.mdx b/docs/references/javascript/types/clerk-paginated-response.mdx
index 9dab418c95..9f9b28754e 100644
--- a/docs/references/javascript/types/clerk-paginated-response.mdx
+++ b/docs/references/javascript/types/clerk-paginated-response.mdx
@@ -1,10 +1,8 @@
---
-title: ClerkPaginatedResponse
+title: '`ClerkPaginatedResponse`'
description: An interface that describes the response of a method that returns a paginated list of resources.
---
-# `ClerkPaginatedResponse`
-
An interface that describes the response of a method that returns a paginated list of resources.
## Properties
diff --git a/docs/references/javascript/types/custom-page.mdx b/docs/references/javascript/types/custom-page.mdx
index 69b292b8dc..2557c2aaad 100644
--- a/docs/references/javascript/types/custom-page.mdx
+++ b/docs/references/javascript/types/custom-page.mdx
@@ -1,10 +1,8 @@
---
-title: CustomPage
+title: '`CustomPage`'
description: An interface that provides the ability to add custom pages to the or components.
---
-# `CustomPage`
-
An interface that provides the ability to add custom pages to the [` `][userprofile-ref] or [` `][orgprofile-ref] components.
## Attributes
diff --git a/docs/references/javascript/types/deleted-object.mdx b/docs/references/javascript/types/deleted-object.mdx
index 71423ec267..d53e0a74c6 100644
--- a/docs/references/javascript/types/deleted-object.mdx
+++ b/docs/references/javascript/types/deleted-object.mdx
@@ -1,10 +1,8 @@
---
-title: DeletedObject
+title: '`DeletedObject`'
description: The DeletectObject class represents an item that has been deleted from the database.
---
-# `DeletedObject`
-
The `DeletedObject` class represents an item that has been deleted from the database.
## Properties
diff --git a/docs/references/javascript/types/magic-link-error.mdx b/docs/references/javascript/types/magic-link-error.mdx
index b101f778ac..1e2962f922 100644
--- a/docs/references/javascript/types/magic-link-error.mdx
+++ b/docs/references/javascript/types/magic-link-error.mdx
@@ -1,10 +1,8 @@
---
-title: MagicLinkError
+title: '`MagicLinkError`'
description: Custom error for magic links.
---
-# `MagicLinkError`
-
Custom error for magic links. Raised when the magic link verification doesn't succeed, either because the link has expired or a general failure. The error's `code` property will indicate the outcome, its values being:
- `MagicLinkErrorCode.Expired`
diff --git a/docs/references/javascript/types/oauth.mdx b/docs/references/javascript/types/oauth.mdx
index 7f44a8d6b3..6ce946efde 100644
--- a/docs/references/javascript/types/oauth.mdx
+++ b/docs/references/javascript/types/oauth.mdx
@@ -3,8 +3,6 @@ title: OAuth Types
description: Types related to OAuth providers and strategies.
---
-# OAuth Types
-
## `OAuthProvider`
A type that represents the OAuth provider.
diff --git a/docs/references/javascript/types/overview.mdx b/docs/references/javascript/types/overview.mdx
index 934161f8fc..0cfc5baa0f 100644
--- a/docs/references/javascript/types/overview.mdx
+++ b/docs/references/javascript/types/overview.mdx
@@ -3,8 +3,6 @@ title: Clerk types
description: Explore the different types available for typing your application.
---
-# Clerk types
-
Types are a powerful tool for adding type-safety to your application. They can help you catch bugs early, make your code easier to understand, and make your code easier to refactor. Clerk provides a number of types to help you add type-safety to your application.
To get access to Clerk types, you need to add the `@clerk/types` package to your project. Install it by running the following command in your terminal:
diff --git a/docs/references/javascript/types/public-user-data.mdx b/docs/references/javascript/types/public-user-data.mdx
index d6c3212310..bf48b0b24e 100644
--- a/docs/references/javascript/types/public-user-data.mdx
+++ b/docs/references/javascript/types/public-user-data.mdx
@@ -1,10 +1,8 @@
---
-title: PublicUserData
+title: '`PublicUserData`'
description: Information about that user that's publicly available.
---
-# `PublicUserData`
-
Information about the user that's publicly available.
## Properties
diff --git a/docs/references/javascript/types/redirect-options.mdx b/docs/references/javascript/types/redirect-options.mdx
index 2d15be755c..deb0fca95f 100644
--- a/docs/references/javascript/types/redirect-options.mdx
+++ b/docs/references/javascript/types/redirect-options.mdx
@@ -1,10 +1,8 @@
---
-title: RedirectOptions
+title: '`RedirectOptions`'
description: An interface that provides options for a range of redirect methods.
---
-# `RedirectOptions`
-
An interface that provides options for a range of redirect methods.
## Properties
diff --git a/docs/references/javascript/types/session-status.mdx b/docs/references/javascript/types/session-status.mdx
index 58bddc19db..3fa6bc6686 100644
--- a/docs/references/javascript/types/session-status.mdx
+++ b/docs/references/javascript/types/session-status.mdx
@@ -1,10 +1,8 @@
---
-title: SessionStatus
+title: '`SessionStatus`'
description: The SessionStatus enum is used to indicate the status of a session.
---
-# `SessionStatus`
-
The `SessionStatus` enum is used to indicate the status of a session.
```tsx
diff --git a/docs/references/javascript/types/sign-in-first-factor.mdx b/docs/references/javascript/types/sign-in-first-factor.mdx
index a0b3a38823..5afc3b4b5e 100644
--- a/docs/references/javascript/types/sign-in-first-factor.mdx
+++ b/docs/references/javascript/types/sign-in-first-factor.mdx
@@ -1,10 +1,8 @@
---
-title: SignInFirstFactor
+title: '`SignInFirstFactor`'
description: The SignInFirstFactor type represents the first factor verification strategy that can be used in the sign-in process.
---
-# `SignInFirstFactor`
-
The `SignInFirstFactor` type represents the first factor verification strategy that can be used in the sign-in process.
```ts
diff --git a/docs/references/javascript/types/sign-in-initial-values.mdx b/docs/references/javascript/types/sign-in-initial-values.mdx
index 0dbf90d24d..0237c8bdc8 100644
--- a/docs/references/javascript/types/sign-in-initial-values.mdx
+++ b/docs/references/javascript/types/sign-in-initial-values.mdx
@@ -1,10 +1,8 @@
---
-title: SignInInitialValues
+title: '`SignInInitialValues`'
description: The type for the `initialValues` prop that is used to pre-populate the sign-in form.
---
-# `SignInInitialValues`
-
The type for the `initialValues` prop that is used to pre-populate the sign-in form.
## Properties
diff --git a/docs/references/javascript/types/sign-in-redirect-options.mdx b/docs/references/javascript/types/sign-in-redirect-options.mdx
index 4737193e28..f6b172ba4f 100644
--- a/docs/references/javascript/types/sign-in-redirect-options.mdx
+++ b/docs/references/javascript/types/sign-in-redirect-options.mdx
@@ -1,10 +1,8 @@
---
-title: SignInRedirectOptions
+title: '`SignInRedirectOptions`'
description: An interface that provides options for sign-in redirect methods.
---
-# `SignInRedirectOptions`
-
An interface that provides options for sign-in redirect methods.
## Properties
diff --git a/docs/references/javascript/types/sign-in-second-factor.mdx b/docs/references/javascript/types/sign-in-second-factor.mdx
index f6db3b0dbe..e0d6dd8f2a 100644
--- a/docs/references/javascript/types/sign-in-second-factor.mdx
+++ b/docs/references/javascript/types/sign-in-second-factor.mdx
@@ -1,10 +1,8 @@
---
-title: SignInSecondFactor
+title: '`SignInSecondFactor`'
description: The SignInSecondFactor type represents the second factor verification strategy that can be used in the sign-in process.
---
-# `SignInSecondFactor`
-
The `SignInSecondFactor` type represents the second factor verification strategy that can be used in the sign-in process.
```ts
diff --git a/docs/references/javascript/types/sign-up-initial-values.mdx b/docs/references/javascript/types/sign-up-initial-values.mdx
index 98ff11b578..8451ee4e42 100644
--- a/docs/references/javascript/types/sign-up-initial-values.mdx
+++ b/docs/references/javascript/types/sign-up-initial-values.mdx
@@ -1,10 +1,8 @@
---
-title: SignUpInitialValues
+title: '`SignUpInitialValues`'
description: The type for the `initialValues` prop that is used to pre-populate the sign-up form.
---
-# `SignUpInitialValues`
-
The type for the `initialValues` prop that is used to pre-populate the sign-up form.
## Properties
diff --git a/docs/references/javascript/types/sign-up-redirect-options.mdx b/docs/references/javascript/types/sign-up-redirect-options.mdx
index fbab1e08cd..1bdf62bdb7 100644
--- a/docs/references/javascript/types/sign-up-redirect-options.mdx
+++ b/docs/references/javascript/types/sign-up-redirect-options.mdx
@@ -1,10 +1,8 @@
---
-title: SignUpRedirectOptions
+title: '`SignUpRedirectOptions`'
description: An interface that provides options for sign-up redirect methods.
---
-# `SignUpRedirectOptions`
-
An interface that provides options for sign-up redirect methods.
## Properties
diff --git a/docs/references/javascript/user/create-metadata.mdx b/docs/references/javascript/user/create-metadata.mdx
index e44a8031b8..5e05b8e879 100644
--- a/docs/references/javascript/user/create-metadata.mdx
+++ b/docs/references/javascript/user/create-metadata.mdx
@@ -1,10 +1,8 @@
---
-title: Create User Metadata
+title: Create user metadata
description: Explore methods on the User object that help you create data for the user, such as createEmailAddress() and createPhoneNumber().
---
-# Create user metadata
-
These methods on the [`User`](/docs/references/javascript/user/user) object help you create data for the user, such as `createEmailAddress()` and `createPhoneNumber()`.
The following examples assume that you have followed the [quickstart](/docs/quickstarts/javascript) in order to add Clerk to your JavaScript application.
diff --git a/docs/references/javascript/user/password-management.mdx b/docs/references/javascript/user/password-management.mdx
index fa4b51985e..691d8dc07c 100644
--- a/docs/references/javascript/user/password-management.mdx
+++ b/docs/references/javascript/user/password-management.mdx
@@ -1,10 +1,8 @@
---
-title: User Password Management
+title: User password management
description: Explore methods on the User object that help you manage a user's password.
---
-# User password management
-
These methods on the [`User`](/docs/references/javascript/user/user) object help you manage a user's password.
The following examples assume that you have followed the [quickstart](/docs/quickstarts/javascript) in order to add Clerk to your JavaScript application.
diff --git a/docs/references/javascript/user/totp.mdx b/docs/references/javascript/user/totp.mdx
index f8ae8c84f3..55c5021fea 100644
--- a/docs/references/javascript/user/totp.mdx
+++ b/docs/references/javascript/user/totp.mdx
@@ -1,10 +1,8 @@
---
-title: Time-based One-time Password
+title: Time-based One-time Password (TOTP)
description: Learn about the methods on the User object that allow you to generate and verify TOTP secrets, disable TOTP, and manage backup codes for user authentication.
---
-# Time-based One-time Password (TOTP)
-
**Authenticator application** and **Backup codes** must be enabled as multi-factor strategies in your Clerk settings for these methods to work. See the [Multi-factor authentication](/docs/authentication/configuration/sign-up-sign-in-options#set-up-multi-factor-authentication) section to learn more.
diff --git a/docs/references/javascript/user/user.mdx b/docs/references/javascript/user/user.mdx
index 37aad7316f..0984285281 100644
--- a/docs/references/javascript/user/user.mdx
+++ b/docs/references/javascript/user/user.mdx
@@ -1,10 +1,8 @@
---
-title: User object
+title: '`User` object'
description: The User object holds all the information for a user of your application and provides a set of methods to manage their account. Users have a unique authentication identifier which might be their email address, phone number or a username.
---
-# `User` object
-
The `User` object holds all of the information for a single user of your application and provides a set of methods to manage their account. Each user has a unique authentication identifier which might be their email address, phone number, or a username.
A user can be contacted at their primary email address or primary phone number. They can have more than one registered email address, but only one of them will be their primary email address. This goes for phone numbers as well; a user can have more than one, but only one phone number will be their primary. At the same time, a user can also have one or more external accounts by connecting to [OAuth providers](/docs/authentication/social-connections/overview) such as Google, Apple, Facebook, and many more.
diff --git a/docs/references/javascript/verification.mdx b/docs/references/javascript/verification.mdx
index 2f21081816..db5dde4003 100644
--- a/docs/references/javascript/verification.mdx
+++ b/docs/references/javascript/verification.mdx
@@ -1,10 +1,8 @@
---
-title: Verification
+title: '`Verification`'
description: The state of the verification process of a sign-in or sign-up attempt.
---
-# `Verification`
-
The state of the verification process of a sign-in or sign-up attempt.
| Name | Type | Description |
diff --git a/docs/references/javascript/web3-wallet/verification.mdx b/docs/references/javascript/web3-wallet/verification.mdx
index 2f7d4fce50..e924b7d6c1 100644
--- a/docs/references/javascript/web3-wallet/verification.mdx
+++ b/docs/references/javascript/web3-wallet/verification.mdx
@@ -1,10 +1,8 @@
---
-title: Web3Wallet Verification
+title: '`Web3Wallet` verification'
description: Learn about the methods on the Web3Wallet object that allow you to verify a user's web3 wallet.
---
-# `Web3Wallet` verification
-
The [`Web3Wallet`](/docs/references/javascript/web3-wallet/web3-wallet) object has methods that allow you to verify a user's web3 wallet.
## `prepareVerification()`
diff --git a/docs/references/javascript/web3-wallet/web3-wallet.mdx b/docs/references/javascript/web3-wallet/web3-wallet.mdx
index 27e951a88a..65ac03a937 100644
--- a/docs/references/javascript/web3-wallet/web3-wallet.mdx
+++ b/docs/references/javascript/web3-wallet/web3-wallet.mdx
@@ -1,10 +1,8 @@
---
-title: Web3Wallet
+title: '`Web3Wallet`'
description: The Web3Wallet object describes a Web3 wallet address. The address can be used as a proof of identification for users.
---
-# `Web3Wallet`
-
The `Web3Wallet` object describes a Web3 wallet address. The address can be used as a proof of identification for users.
Web3 addresses must be verified to ensure that they can be assigned to their rightful owners. The verification is completed via Web3 wallet browser extensions, such as [Metamask](https://metamask.io/). The `Web3Wallet3` object holds all the necessary state around the verification process.
diff --git a/docs/references/nextjs/auth-middleware.mdx b/docs/references/nextjs/auth-middleware.mdx
index 946fa4dafe..9dddce56c8 100644
--- a/docs/references/nextjs/auth-middleware.mdx
+++ b/docs/references/nextjs/auth-middleware.mdx
@@ -1,10 +1,8 @@
---
-title: authMiddleware() | Next.js
+title: '`authMiddleware()`'
description: The `authMiddleware()` method allows you to protect your Next.js application using middleware.
---
-# `authMiddleware()`
-
The `authMiddleware()` helper integrates Clerk authentication into your Next.js application through middleware. `authMiddleware()` is compatible with both the App and Pages routers.
## Usage
diff --git a/docs/references/nextjs/auth-object.mdx b/docs/references/nextjs/auth-object.mdx
index 3a36080b27..e270061a59 100644
--- a/docs/references/nextjs/auth-object.mdx
+++ b/docs/references/nextjs/auth-object.mdx
@@ -1,10 +1,8 @@
---
-title: Auth object
+title: '`Auth` object'
description: The Auth object contains information about the current user's session.
---
-# `Auth` object
-
Both [`auth()`](/docs/references/nextjs/auth) and [`getAuth()`](/docs/references/nextjs/get-auth) return an `Auth` object. This JavaScript object contains important information like the current user's session ID, user ID, and organization ID. It also contains methods to check for permissions and retrieve the current user's session token.
## `Auth` object properties
diff --git a/docs/references/nextjs/auth.mdx b/docs/references/nextjs/auth.mdx
index 63dba7b204..0424e4f719 100644
--- a/docs/references/nextjs/auth.mdx
+++ b/docs/references/nextjs/auth.mdx
@@ -1,10 +1,8 @@
---
-title: auth()
+title: '`auth()`'
description: Access minimal authentication data for managing sessions and data fetching.
---
-# `auth()`
-
The `auth()` helper returns the [`Authentication`](/docs/references/nextjs/auth-object) object of the currently active user. This is the same `Authentication` object that is returned by the [`getAuth()`](/docs/references/nextjs/get-auth) hook. However, it can be used in Server Components, Route Handlers, and Server Actions.
The `auth()` helper does require [Middleware](/docs/references/nextjs/auth-middleware).
diff --git a/docs/references/nextjs/build-clerk-props.mdx b/docs/references/nextjs/build-clerk-props.mdx
index d23935c944..76fb63a68d 100644
--- a/docs/references/nextjs/build-clerk-props.mdx
+++ b/docs/references/nextjs/build-clerk-props.mdx
@@ -1,10 +1,8 @@
---
-title: buildClerkProps
+title: '`buildClerkProps`'
description: Clerk uses buildClerkProps to inform the client side helpers of the authentication state of the user. This function is used SSR in the getServerSideProps function of your Next.js application.
---
-# `buildClerkProps`
-
Clerk uses `buildClerkProps` to inform the client side helpers of the authentication state of the user. This function is used SSR in the `getServerSideProps` function of your Next.js application.
## Usage
diff --git a/docs/references/nextjs/current-user.mdx b/docs/references/nextjs/current-user.mdx
index 71da484e59..60327b4bfa 100644
--- a/docs/references/nextjs/current-user.mdx
+++ b/docs/references/nextjs/current-user.mdx
@@ -1,10 +1,8 @@
---
-title: currentUser()
+title: '`currentUser()`'
description: Use the currentUser() helper to access information about your user inside of your Server Components, Route Handlers, and Server Actions.
---
-# `currentUser()`
-
The `currentUser` helper returns the [`Backend API User`](https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetUser) object of the currently active user. It can be used in Server Components, Route Handlers, and Server Actions.
Under the hood, this helper:
diff --git a/docs/references/nextjs/custom-signup-signin-pages.mdx b/docs/references/nextjs/custom-signup-signin-pages.mdx
index bf124ed4f7..80d9645b11 100644
--- a/docs/references/nextjs/custom-signup-signin-pages.mdx
+++ b/docs/references/nextjs/custom-signup-signin-pages.mdx
@@ -1,10 +1,8 @@
---
-title: Build your own sign-in and sign-up pages for your Next.js app with Clerk
+title: Next steps
description: Learn how to add custom sign-in and sign-up pages to your Next.js app with Clerk's prebuilt components.
---
-# Build your own sign-in and sign-up pages for your Next.js app with Clerk
-
This guide shows how you use the [` `](/docs/components/authentication/sign-in) and [` `](/docs/components/authentication/sign-up) components with the [Next.js optional catch-all route](https://nextjs.org/docs/pages/building-your-application/routing/dynamic-routes#catch-all-segments) in order to build custom sign-in and sign-up pages for your Next.js app.
If Clerk's prebuilt components don't meet your specific needs or if you require more control over the logic, you can rebuild the existing Clerk flows using the Clerk API. For more information, check out the [custom flows](/docs/custom-flows/overview) guides.
diff --git a/docs/references/nextjs/get-auth.mdx b/docs/references/nextjs/get-auth.mdx
index 6aefab5a34..10f423da55 100644
--- a/docs/references/nextjs/get-auth.mdx
+++ b/docs/references/nextjs/get-auth.mdx
@@ -1,10 +1,8 @@
---
-title: getAuth()
+title: '`getAuth()`'
description: The getAuth() helper retrieves the authentication state allowing you to protect your API routes or gather relevant data.
---
-# `getAuth()`
-
The `getAuth()` helper retrieves the authentication state, allowing you to protect your API routes or gather relevant data. The variables available in the response can be found [here](/docs/references/nextjs/auth-object).
## Usage
diff --git a/docs/references/nextjs/overview.mdx b/docs/references/nextjs/overview.mdx
index 9310b95c52..a50b0020bf 100644
--- a/docs/references/nextjs/overview.mdx
+++ b/docs/references/nextjs/overview.mdx
@@ -1,10 +1,8 @@
---
-title: Next.js and Clerk
+title: Overview
description: Learn how to use Clerk to quickly and easily add secure authentication and user management to your Next.js application.
---
-# Overview
-
Clerk makes it simple to add authentication to your Next.js application. This documentation covers the capabilities and methods available from Clerk's Next.js SDK.
## Guides
diff --git a/docs/references/nextjs/read-session-data.mdx b/docs/references/nextjs/read-session-data.mdx
index a7bff65820..c013774949 100644
--- a/docs/references/nextjs/read-session-data.mdx
+++ b/docs/references/nextjs/read-session-data.mdx
@@ -3,8 +3,6 @@ title: Read session and user data in your Next.js app with Clerk
description: Learn how to use Clerk's hooks and helpers to access the active session and user data in your Next.js application.
---
-# Read session and user data in your Next.js app with Clerk
-
Clerk provides a set of [hooks and helpers](/docs/references/nextjs/overview#client-side-helpers) that you can use to access the active session and user data in your Next.js application. Here are examples of how to use these helpers in both the client and server side to get you started.
## Server side
diff --git a/docs/references/nextjs/route-handlers.mdx b/docs/references/nextjs/route-handlers.mdx
index 21fae37949..93c548f020 100644
--- a/docs/references/nextjs/route-handlers.mdx
+++ b/docs/references/nextjs/route-handlers.mdx
@@ -2,7 +2,6 @@
title: Route Handlers
description: Learn how to use Clerk with your Route Handlers.
---
-# Route Handlers
Clerk provides helpers to allow you to protect your Route Handlers, fetch the current user, and interact with the Clerk API.
diff --git a/docs/references/nextjs/server-actions.mdx b/docs/references/nextjs/server-actions.mdx
index 23573b4364..d9ba93c267 100644
--- a/docs/references/nextjs/server-actions.mdx
+++ b/docs/references/nextjs/server-actions.mdx
@@ -3,8 +3,6 @@ title: Server Actions
description: Learn how to use Clerk with Server Actions.
---
-# Server Actions
-
Clerk provides helpers to allow you to protect your Server Actions, fetch the current user, and interact with the Clerk API.
Below are some examples of usage both in Server Components or Client Components.
diff --git a/docs/references/nextjs/trpc.mdx b/docs/references/nextjs/trpc.mdx
index 2b67467c3f..2e6ef24659 100644
--- a/docs/references/nextjs/trpc.mdx
+++ b/docs/references/nextjs/trpc.mdx
@@ -3,8 +3,6 @@ title: Integrate Clerk into your Next.js Pages Router app with tRPC
description: Learn how to integrate Clerk into your Next.js Pages Router application using tRPC.
---
-# Integrate Clerk into your Next.js Pages Router app with tRPC
-
diff --git a/docs/references/nextjs/with-clerk-middleware.mdx b/docs/references/nextjs/with-clerk-middleware.mdx
index 1331e957fe..4afb3ae219 100644
--- a/docs/references/nextjs/with-clerk-middleware.mdx
+++ b/docs/references/nextjs/with-clerk-middleware.mdx
@@ -1,10 +1,8 @@
---
-title: withClerkMiddleware() (deprecated)
+title: '`withClerkMiddleware()` (deprecated)'
description: The withClerkMiddleware wrapper allows Clerk to access session data on the server side allowing you to use any of our server side helpers without any additonal network calls.
---
-# `withClerkMiddleware()` (deprecated)
-
`withClerkMiddleware()` was deprecated and will be removed in the next major version (Core 2). Please use [`authMiddleware()`](/docs/references/nextjs/auth-middleware) for now. Note that `authMiddleware()` will also be removed in the next major version in favor of [`clerkMiddleware()`](https://beta.clerk.com/docs/references/nextjs/clerk-middleware).
diff --git a/docs/references/nodejs/overview.mdx b/docs/references/nodejs/overview.mdx
index d9526b1e9b..66ddb98e56 100644
--- a/docs/references/nodejs/overview.mdx
+++ b/docs/references/nodejs/overview.mdx
@@ -3,8 +3,6 @@ title: Clerk Node.js SDK
description: Learn how to integrate Node.js into your Clerk application.
---
-# Clerk Node.js SDK
-
## Setting up Clerk Node.js
diff --git a/docs/references/nodejs/token-verification.mdx b/docs/references/nodejs/token-verification.mdx
index 9f6b3ea241..2654b3df8f 100644
--- a/docs/references/nodejs/token-verification.mdx
+++ b/docs/references/nodejs/token-verification.mdx
@@ -1,10 +1,8 @@
---
-title: Networkless token verification | Clerk Node.js SDK
+title: Networkless token verification
description: Clerk's JWT session token can be verified in a networkless manner using the JWT verification key.
---
-# Networkless token verification
-
Clerk's JWT session token can be verified in a networkless manner using the JWT verification key. By default, Clerk will use our JWKs endpoint to fetch and cache the key for any subsequent verification. If you use the `CLERK_JWT_KEY` environment variable to supply the key, Clerk will pick it up and do networkless verification for session tokens using it.
To learn more about Clerk's token verification, you can find more information on our guide to [validating session tokens](/docs/backend-requests/handling/manual-jwt).
diff --git a/docs/references/overview.mdx b/docs/references/overview.mdx
index 187e8b218e..8bd5c3c4c9 100644
--- a/docs/references/overview.mdx
+++ b/docs/references/overview.mdx
@@ -2,3 +2,57 @@
title: SDK References
description: Learn about the Clerk and community SDK's available for integrating Clerk into your application.
---
+
+## Build with Clerk SDKs
+
+
+
+- [React](/docs/quickstarts/react)
+- Clerk React is the recommended way to integrate Clerk into your React application.
+- { }
+
+---
+
+- [JavaScript](/docs/references/javascript/overview)
+- ClerkJS is our foundational JavaScript library for building user management and authentication.
+- { }
+
+---
+
+- [Node.js](/docs/references/nodejs/overview)
+- Clerk Node SDK is the recommend way to integrate Clerk into your Node / Express application.
+- { }
+
+---
+
+- [React Native / Expo](/docs/quickstarts/expo)
+- Clerk Expo is the recommended way to integrate Clerk into your React Native application.
+- { }
+
+---
+
+- [Go](/docs/references/go/overview)
+- Clerk Go SDK is a wrapper around our Backend API written in Golang.
+- { }
+
+---
+
+- [Ruby](/docs/references/ruby/overview)
+- Clerk Ruby is the recommended way to integrate Clerk into your Ruby application.
+- { }
+
+
+
+
+
+- [Join our Discord](/discord 'Join Discord')
+- Join our official Discord server to chat with us directly and become a part of the Clerk community.
+- { }
+
+---
+
+- [Need help?](/support 'Get help')
+- Contact us through Discord, Twitter, or email to receive answers to your questions and learn more about Clerk.
+- { }
+
+
\ No newline at end of file
diff --git a/docs/references/react/overview.mdx b/docs/references/react/overview.mdx
index 7b55ece3a4..86aa7bf439 100644
--- a/docs/references/react/overview.mdx
+++ b/docs/references/react/overview.mdx
@@ -3,8 +3,6 @@ title: Clerk React SDK
description: Learn how to integrate React into your Clerk application.
---
-# Clerk React SDK
-
Clerk React is a wrapper around ClerkJS. It is the recommended way to integrate Clerk into your React application.
diff --git a/docs/references/react/use-auth.mdx b/docs/references/react/use-auth.mdx
index eb4cdd242e..e1e99a953a 100644
--- a/docs/references/react/use-auth.mdx
+++ b/docs/references/react/use-auth.mdx
@@ -1,10 +1,8 @@
---
-title: useAuth()
+title: '`useAuth()`'
description: Clerk's useAuth() hook is a convenient way to access the current auth state.
---
-# `useAuth()`
-
The `useAuth()` hook is a convenient way to access the current auth state. This hook provides the minimal information needed for data-loading and helper methods to manage the current active session.
## `useAuth()` returns
diff --git a/docs/references/react/use-clerk.mdx b/docs/references/react/use-clerk.mdx
index 2c5e7f149a..a042a2fac2 100644
--- a/docs/references/react/use-clerk.mdx
+++ b/docs/references/react/use-clerk.mdx
@@ -1,10 +1,8 @@
---
-title: useClerk()
+title: '`useClerk()`'
description: Clerk's useClerk() hook is used to access the Clerk object, which can be used to build alternatives to any Clerk Component.
---
-# `useClerk()`
-
The `useClerk()` hook provides access to the [`Clerk`](/docs/references/javascript/clerk/clerk) object, giving you the ability to build alternatives to any Clerk Component.
diff --git a/docs/references/react/use-organization-list.mdx b/docs/references/react/use-organization-list.mdx
index 4c1e5ce70f..d97db27de9 100644
--- a/docs/references/react/use-organization-list.mdx
+++ b/docs/references/react/use-organization-list.mdx
@@ -1,10 +1,8 @@
---
-title: useOrganizationList()
+title: '`useOrganizationList()`'
description: Clerk's useOrganizationList() hook is used to access methods for switching between active organizations and for listing the user's organization memberships, invitations, and suggestions.
---
-# `useOrganizationList()`
-
The `useOrganizationList()` hook allows you to retrieve the memberships, invitations, or suggestions for an active user. This hook also gives you the ability to create an organization and set the active organization.
## `useOrganizationList()` parameters
diff --git a/docs/references/react/use-organization.mdx b/docs/references/react/use-organization.mdx
index 2ddde8f1a8..0071a7a341 100644
--- a/docs/references/react/use-organization.mdx
+++ b/docs/references/react/use-organization.mdx
@@ -1,10 +1,8 @@
---
-title: useOrganization()
+title: '`useOrganization()`'
description: Clerk's useOrganization() hook retrieves attributes of the currently active organization.
---
-# `useOrganization()`
-
The `useOrganization()` hook is used to retrieve attributes of the currently active organization.
## `useOrganization()` parameters
diff --git a/docs/references/react/use-organizations.mdx b/docs/references/react/use-organizations.mdx
index bb8225bcbc..789ee3189f 100644
--- a/docs/references/react/use-organizations.mdx
+++ b/docs/references/react/use-organizations.mdx
@@ -1,10 +1,8 @@
---
-title: useOrganizations()
+title: '`useOrganizations()`'
description: The useOrganizations() hook has been deprecated in favor of useOrganization().
---
-# `useOrganizations()`
-
This hook has been deprecated in favor of [`useOrganization()`](/docs/references/react/use-organization) and [`useOrganizationList()`](/docs/references/react/use-organization-list).
diff --git a/docs/references/react/use-session-list.mdx b/docs/references/react/use-session-list.mdx
index 92367be186..62dfd2ad6e 100644
--- a/docs/references/react/use-session-list.mdx
+++ b/docs/references/react/use-session-list.mdx
@@ -1,10 +1,8 @@
---
-title: useSessionList()
+title: '`useSessionList()`'
description: Clerk's useSessionList() hook retrieves a list of sessions that have been registered on the client device.
---
-# `useSessionList()`
-
The `useSessionList()` hook returns an array of [`Session`](/docs/references/javascript/session) objects that have been registered on the client device.
## `useSessionList()` returns
diff --git a/docs/references/react/use-session.mdx b/docs/references/react/use-session.mdx
index a3aca12546..33143976a8 100644
--- a/docs/references/react/use-session.mdx
+++ b/docs/references/react/use-session.mdx
@@ -1,10 +1,8 @@
---
-title: useSession()
+title: '`useSession()`'
description: Clerk's useSession() hook provides access to the the current user Session object, as well as helpers to set the active session.
---
-# `useSession()`
-
The `useSession()` hook provides access to the current user's [`Session`](/docs/references/javascript/session) object, as well as helpers for setting the active session.
## `useSession()` returns
diff --git a/docs/references/react/use-sign-in.mdx b/docs/references/react/use-sign-in.mdx
index 42234502ff..90b181f51f 100644
--- a/docs/references/react/use-sign-in.mdx
+++ b/docs/references/react/use-sign-in.mdx
@@ -1,10 +1,8 @@
---
-title: useSignIn()
+title: '`useSignIn()`'
description: Clerk's useSignIn() hook provides access to the SignIn object, which allows you to check the current state of a sign-in.
---
-# `useSignIn()`
-
The `useSignIn()` hook provides access to the [`SignIn`](/docs/references/javascript/sign-in/sign-in) object, which allows you to check the current state of a sign-in. This is also useful for creating a custom sign-in flow.
## `useSignIn()` returns
diff --git a/docs/references/react/use-sign-up.mdx b/docs/references/react/use-sign-up.mdx
index 0da896c01c..44b355c797 100644
--- a/docs/references/react/use-sign-up.mdx
+++ b/docs/references/react/use-sign-up.mdx
@@ -1,8 +1,7 @@
---
-title: useSignUp()
+title: '`useSignUp()`'
description: Clerk's useSignUp() hook gives you access to the SignUp object, which allows you to check the current state of a sign-up.
---
-# `useSignUp()`
The `useSignUp()` hook gives you access to the [`SignUp`](/docs/references/javascript/sign-up/sign-up) object, which allows you to check the current state of a sign-up. This is also useful for creating a custom sign-up flow.
diff --git a/docs/references/react/use-user.mdx b/docs/references/react/use-user.mdx
index 4db7d2629c..70169fe6fa 100644
--- a/docs/references/react/use-user.mdx
+++ b/docs/references/react/use-user.mdx
@@ -1,10 +1,8 @@
---
-title: useUser()
+title: '`useUser()`'
description: The useUser() hook is used to get the current user object and to update the user's data on the client side.
---
-# `useUser()`
-
The `useUser()` hook is a convenient way to access the current [`User`](/docs/references/javascript/user/user) data where you need it. This hook provides the user data and helper methods to manage the current active session.
## `useUser()` returns
diff --git a/docs/references/redwood/overview.mdx b/docs/references/redwood/overview.mdx
index d1eb0eee0b..38ab17a6ed 100644
--- a/docs/references/redwood/overview.mdx
+++ b/docs/references/redwood/overview.mdx
@@ -3,8 +3,6 @@ title: Use Clerk with RedwoodJS
description: Learn how to use Clerk to quickly and easily add secure authentication and user management to your RedwoodJS application.
---
-# Use Clerk with RedwoodJS
-
Learn how to use Clerk to quickly and easily add secure authentication and user management to your RedwoodJS application.
diff --git a/docs/references/remix/clerk-app.mdx b/docs/references/remix/clerk-app.mdx
index e348f10e60..bb89a47aa1 100644
--- a/docs/references/remix/clerk-app.mdx
+++ b/docs/references/remix/clerk-app.mdx
@@ -1,10 +1,8 @@
---
-title: ClerkApp
+title: '`ClerkApp`'
description: Clerk provides a ClerkApp wrapper to provide the authentication state to your React tree. This helper works with Remix SSR out-of-the-box and follows the "higher-order component" paradigm.
---
-# `ClerkApp`
-
Clerk provides a `ClerkApp` wrapper to provide the authentication state to your React tree. This helper works with Remix SSR out-of-the-box and follows the "higher-order component" paradigm.
## Usage
diff --git a/docs/references/remix/clerk-error-boundary.mdx b/docs/references/remix/clerk-error-boundary.mdx
index d673cf19fb..0a8b45f7cf 100644
--- a/docs/references/remix/clerk-error-boundary.mdx
+++ b/docs/references/remix/clerk-error-boundary.mdx
@@ -1,10 +1,8 @@
---
-title: ClerkErrorBoundary()
+title: '`ClerkErrorBoundary()`'
description: Clerk uses short-lived tokens to keep your application secure. To refresh expired tokens, Clerk uses Remix's error boundary feature.
---
-# `ClerkErrorBoundary()`
-
Clerk uses short-lived tokens to keep your application secure. To refresh expired tokens Clerk [uses Remix's error boundary feature](https://remix.run/docs/en/main/route/error-boundary).
> If you do not implement this into your app, you will see a 401 after a short period of time even though your user is signed in.
diff --git a/docs/references/ruby/available-methods.mdx b/docs/references/ruby/available-methods.mdx
index 6d7bb2af4c..e6eb422a45 100644
--- a/docs/references/ruby/available-methods.mdx
+++ b/docs/references/ruby/available-methods.mdx
@@ -1,10 +1,8 @@
---
-title: Available methods | Ruby
+title: Available methods
description: Learn about the available methods in the Clerk Ruby SDK.
---
-# Available methods
-
The Ruby SDK mirrors the [Backend API](https://clerk.com/docs/reference/backend-api). The SDK is organized into resources, which are listed below. Each resource has a set of methods that correspond to the API endpoints.
All examples assume you have an instance of the `Clerk::SDK`:
diff --git a/docs/references/ruby/overview.mdx b/docs/references/ruby/overview.mdx
index fa4c0141d6..85ec94f5f0 100644
--- a/docs/references/ruby/overview.mdx
+++ b/docs/references/ruby/overview.mdx
@@ -3,8 +3,6 @@ title: Clerk Ruby SDK
description: Learn how to integrate Ruby into your Clerk application.
---
-# Clerk Ruby SDK
-
### Create a Clerk application
diff --git a/docs/references/ruby/rack-rails.mdx b/docs/references/ruby/rack-rails.mdx
index 8d4229d736..6cb16f8846 100644
--- a/docs/references/ruby/rack-rails.mdx
+++ b/docs/references/ruby/rack-rails.mdx
@@ -1,10 +1,8 @@
---
-title: Rack/Rails integration | Clerk Ruby SDK
+title: Rack/Rails integration
description: The Clerk SDK comes with Rack middleware and a gem that can be used in Rails apps.
---
-# Rack/Rails integration
-
## Rack middleware
The SDK comes with a Rack middleware which lazily loads the Clerk session and user. It inserts a clerk key in the Rack environment, which is an instance of `Clerk::Proxy`. To get the session or the user of the session, you call `session` or `user` respectively. In case there is no session, you can retrieve the API error with the `error` getter method.
diff --git a/docs/security/csrf-protection.mdx b/docs/security/csrf-protection.mdx
index 34fa319a6a..7fe10533d1 100644
--- a/docs/security/csrf-protection.mdx
+++ b/docs/security/csrf-protection.mdx
@@ -1,10 +1,8 @@
---
-title: CSRF Protection
+title: CSRF protection
description: CSRF is an attack that tricks the victim into submitting a malicious request. It inherits the identity and privileges of the victim to perform an undesired function on the victim’s behalf.
---
-# CSRF protection
-
CSRF is an attack that tricks the victim into submitting a malicious request. It inherits the identity and privileges of the victim to perform an undesired function on the victim's behalf. For most sites, browser requests automatically include any credentials associated with the site, such as the user's session cookie, IP address, Windows domain credentials, and so forth. Therefore, if the user is currently authenticated to the site, the site will have no way to distinguish between the forged request sent by the victim and a legitimate request sent by the victim.
[The OWASP® Foundation, Cross Site Request Forgery (CSRF)](https://owasp.org/www-community/attacks/xss/)
diff --git a/docs/security/customize-user-lockout.mdx b/docs/security/customize-user-lockout.mdx
index 584f403155..4a7a1b613f 100644
--- a/docs/security/customize-user-lockout.mdx
+++ b/docs/security/customize-user-lockout.mdx
@@ -3,8 +3,6 @@ title: Customize max sign-in attempts and duration of user lockout
description: Use Clerk to limit the number of times a user can attempt to sign in before they are locked out of their account and customize how long such lockouts last.
---
-# Customize max sign-in attempts and duration of user lockout
-
Clerk provides an Account Lockout feature in order to protect user credentials against brute force attacks. You can customize the number of times a sign in can be attempted before the account is locked to prevent further sign-in attempts, and how long such a lockout lasts.
diff --git a/docs/security/fixation-protection.mdx b/docs/security/fixation-protection.mdx
index b04ca368a6..09ceda3c54 100644
--- a/docs/security/fixation-protection.mdx
+++ b/docs/security/fixation-protection.mdx
@@ -3,8 +3,6 @@ title: Fixation protection
description: Session Fixation is an attack that permits an attacker to hijack a valid user session. The attack explores a limitation in the way the web application manages the session ID, more specifically the vulnerable web application. When authenticating a user, it doesn’t assign a new session ID, making it possible to use an existent session ID.
---
-# Fixation protection
-
Session Fixation is an attack that permits an attacker to hijack a valid user session. The attack explores a limitation in the way the web application manages the session ID, more specifically the vulnerable web application. When authenticating a user, it doesn't assign a new session ID, making it possible to use an existent session ID.
[The OWASP® Foundation, Cross Site Request Forgery (CSRF)](https://owasp.org/www-community/attacks/Session_fixation)
diff --git a/docs/security/overview.mdx b/docs/security/overview.mdx
index 4450239d0c..71e98e228b 100644
--- a/docs/security/overview.mdx
+++ b/docs/security/overview.mdx
@@ -3,8 +3,6 @@ title: Security
description: Account security is Clerk's most important responsibility and the top concern of every feature we build. Maintaining best-practice account security has become too challenging and time-consuming for most organizations, and we have seen too many organizations cut corners as a result.
---
-# Security
-
Account security is Clerk's most important responsibility and the top concern of every feature we build. Maintaining best-practice account security has become too challenging and time-consuming for most organizations, and we have seen too many organizations cut corners as a result.
Clerk has a secure-by-default philosophy. Our goal is to help customers overcome as many challenges as possible without additional configuration, and we work to avoid options that may lead to an insecure application.
diff --git a/docs/security/password-protection.mdx b/docs/security/password-protection.mdx
index e38395c238..e6b18da1e4 100644
--- a/docs/security/password-protection.mdx
+++ b/docs/security/password-protection.mdx
@@ -3,8 +3,6 @@ title: Password protection and rules
description: Clerk refers to the National Institute of Standards and Technology (NIST) guidelines to determine the character rules for passwords.
---
-# Password protection and rules
-
## Password rules
Clerk refers to the National Institute of Standards and Technology (NIST) guidelines to determine the character rules for passwords:
diff --git a/docs/security/programmatically-lock-user-accounts.mdx b/docs/security/programmatically-lock-user-accounts.mdx
index 828c4169e3..6b0dacaeb2 100644
--- a/docs/security/programmatically-lock-user-accounts.mdx
+++ b/docs/security/programmatically-lock-user-accounts.mdx
@@ -3,8 +3,6 @@ title: Programmatically lock and unlock user accounts
description: Lock users to prevent them from signing in based on your own custom criteria.
---
-# Programmatically lock and unlock user accounts
-
## Unlocking a user programmatically
You can programmatically unlock a user using the [UnlockUser](https://clerk.com/docs/reference/backend-api/tag/Users#operation/LockUser) Backend API operation.
diff --git a/docs/security/unlock-user-accounts.mdx b/docs/security/unlock-user-accounts.mdx
index 7f41277872..75af658a50 100644
--- a/docs/security/unlock-user-accounts.mdx
+++ b/docs/security/unlock-user-accounts.mdx
@@ -3,8 +3,6 @@ title: Unlock user accounts from the Clerk Dashboard
description: Use the Clerk Dashboard to unlock user accounts.
---
-# Unlock user accounts from the Clerk Dashboard
-
This feature is applicable to a subset of actions. Find a [full list here](/docs/security/user-lock-guide#related-actions)
diff --git a/docs/security/user-lock-guide.mdx b/docs/security/user-lock-guide.mdx
index ae5e22c677..884bbf3725 100644
--- a/docs/security/user-lock-guide.mdx
+++ b/docs/security/user-lock-guide.mdx
@@ -3,8 +3,6 @@ title: Brute force attacks and locking user accounts
description: User information is aprime target for malicious activity. Clerk protects your users against brute force attacks by locking out accounts with too many sign-in attempts until a set period of time has passed.
---
-# Brute force attacks and locking user accounts
-
User accounts are a vector for malicious attacks for many reasons, from impersonation to collecting personally identifiable information (PII). One method is a "brute force" attack, where a script will attempt many different passwords to sign into an account. One line of defense against these attacks is to temporarily deny attempts to sign into accounts that attempt too many failed sign-ins in a short period of time. Locking out sign-in attempts disrupts the attack and makes the account a less attractive target.
## How Clerk protects against brute force attacks
diff --git a/docs/security/vulnerability-disclosure-policy.mdx b/docs/security/vulnerability-disclosure-policy.mdx
index 6fb87dc065..bd200aca56 100644
--- a/docs/security/vulnerability-disclosure-policy.mdx
+++ b/docs/security/vulnerability-disclosure-policy.mdx
@@ -3,8 +3,6 @@ title: Vulnerability disclosure policy
description: Clerk's vulnerability disclosure policy.
---
-# Vulnerability disclosure policy
-
## Guidelines
We require that all researchers:
diff --git a/docs/security/xss-leak-protection.mdx b/docs/security/xss-leak-protection.mdx
index 5a3f44d9f2..68241862ce 100644
--- a/docs/security/xss-leak-protection.mdx
+++ b/docs/security/xss-leak-protection.mdx
@@ -3,8 +3,6 @@ title: XSS leak protection
description: Learn how Clerk prevents and mitigates XSS attacks.
---
-# XSS leak protection
-
Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted websites. The [OWASP® Foundation, Cross Site Scripting (XSS)](https://owasp.org/www-community/attacks/xss/)
XSS vulnerabilities are incredibly serious and we recommend you reference the [OWASP Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) to learn how you can prevent an attack.
diff --git a/docs/testing/overview.mdx b/docs/testing/overview.mdx
index eda61d2c17..3f8431c283 100644
--- a/docs/testing/overview.mdx
+++ b/docs/testing/overview.mdx
@@ -3,8 +3,6 @@ title: Testing
description: Learn about testing with Clerk.
---
-# Testing
-
Testing is an important part of every application. Clerk has built some helpers to make testing your application with Clerk easier, with more on the way. Each framework may require a slightly different setup. If you're having trouble getting testing to work properly, [send us a message](https://clerk.com/support) and we'll be able to help.
## Testing with one time passcodes
diff --git a/docs/testing/postman-or-insomnia.mdx b/docs/testing/postman-or-insomnia.mdx
index 570921c7ca..2ab3c5712d 100644
--- a/docs/testing/postman-or-insomnia.mdx
+++ b/docs/testing/postman-or-insomnia.mdx
@@ -3,8 +3,6 @@ title: Testing with Postman or Insomnia
description: Learn about generating and using a long-lived JWT Token with Postman or Insomnia.
---
-# Testing with Postman or Insomnia
-
Postman and Insomnia are powerful tools used to test API's, validate their behavior, and automate testing tasks. Basic testing with these tools is similar, and this guide will help you get started with either option.
## Generate long-lived JWT template
diff --git a/docs/testing/test-emails-and-phones.mdx b/docs/testing/test-emails-and-phones.mdx
index 663b4cb677..7bfbadc36b 100644
--- a/docs/testing/test-emails-and-phones.mdx
+++ b/docs/testing/test-emails-and-phones.mdx
@@ -3,8 +3,6 @@ title: Test emails and phones
description: Write end to end tests by simulating OTP verifications.
---
-# Test emails and phones
-
Most of Clerk's sign-in and sign-up flows involve verifying ownership of an email address or phone number via a [one time passcode (OTP)](/docs/custom-flows/email-sms-otp). To confirm that your integration works correctly, you can simulate verification flows without sending an email or SMS, by using reserved values in test mode.
Verification messages are used during sign-up, sign-in, and when adding an email address or phone number to an existing account.
diff --git a/docs/troubleshooting/create-a-minimal-reproduction.mdx b/docs/troubleshooting/create-a-minimal-reproduction.mdx
index b9e2a95761..9b36682106 100644
--- a/docs/troubleshooting/create-a-minimal-reproduction.mdx
+++ b/docs/troubleshooting/create-a-minimal-reproduction.mdx
@@ -3,8 +3,6 @@ title: Create a minimal reproduction
description: Learn how to create a minimal reproduction in order to help the Clerk Support team debug and resolve issues specific to your application.
---
-# Create a minimal reproduction
-
Software development is hard, and there are an infinite number of different ways that you can configure and code a given application. Additionally, with large and complex applications, the cause of an error can be traced back to a wide variety of different things, making issues even more difficult to debug. The creation of minimal reproductions is an essential tool in any seasoned developer’s belt for resolving difficult issues, as this process gradually eliminates causes of an issue, narrowing it down to only the root cause.
## What is a minimal reproduction?
diff --git a/docs/troubleshooting/email-deliverability.mdx b/docs/troubleshooting/email-deliverability.mdx
index 9ccbde40b1..78d181d171 100644
--- a/docs/troubleshooting/email-deliverability.mdx
+++ b/docs/troubleshooting/email-deliverability.mdx
@@ -3,8 +3,6 @@ title: Email deliverability
description: A lot goes into making sure verification emails make it to your customers as quickly as possible. Clerk uses every best practice, and is proactive about monitoring verification email deliverability and speed. Behind the scenes, Clerk uses Sendgrid using a pool of dedicated IP addresses to ensure that our reputation stays perfect.
---
-# Email deliverability
-
A lot goes into making sure verification emails make it to your customers as quickly as possible. Clerk uses every best practice, and is proactive about monitoring verification email deliverability and speed. Behind the scenes, Clerk uses [Sendgrid](https://sendgrid.com) using a pool of dedicated IP addresses to ensure that our reputation stays perfect.
In development instances, all emails are sent from `@accounts.dev` domain. In production instances, they are sent from your own domain e.g. `@example.com`.
diff --git a/docs/troubleshooting/overview.mdx b/docs/troubleshooting/overview.mdx
index 15a450905b..27c575b8ff 100644
--- a/docs/troubleshooting/overview.mdx
+++ b/docs/troubleshooting/overview.mdx
@@ -3,8 +3,6 @@ title: Troubleshooting
description: Learn how to troubleshoot common issues with Clerk and contact support for additional assistance.
---
-# Troubleshooting
-
We hope that our documentation is thorough and transparent enough that you won't run into any issues. If you can't find what you're looking for in the navigation sidebar, use the search function of the docs to track down the information you need.
Refer to the [Backend API](https://clerk.com/docs/reference/backend-api) and [Frontend API](https://clerk.com/docs/reference/frontend-api) reference docs for questions about object structures, requests, and responses.
diff --git a/docs/troubleshooting/script-loading.mdx b/docs/troubleshooting/script-loading.mdx
index dcd32e719c..aceda20a0f 100644
--- a/docs/troubleshooting/script-loading.mdx
+++ b/docs/troubleshooting/script-loading.mdx
@@ -3,8 +3,6 @@ title: Script loading
description: Troubleshooting strategies for cases when Clerk doesn't successfully load
---
-# Script loading
-
It sometimes might happen that Clerk doesn't successfully load and initialize during page rendering. This could happen for a myriad of reasons, including but not limited to:
- You have no internet connection
diff --git a/docs/upgrade-guides/api-keys.mdx b/docs/upgrade-guides/api-keys.mdx
index 86956aee77..2bfe4a2eeb 100644
--- a/docs/upgrade-guides/api-keys.mdx
+++ b/docs/upgrade-guides/api-keys.mdx
@@ -3,8 +3,6 @@ title: Publishable and secret keys
description: Dive into Clerk's latest V3 update.
---
-# Publishable and secret keys
-
If your application was created after January 18, 2023, you're already using publishable and secret keys.
diff --git a/docs/upgrade-guides/long-term-support.mdx b/docs/upgrade-guides/long-term-support.mdx
index 8372c10563..3b36e7baaa 100644
--- a/docs/upgrade-guides/long-term-support.mdx
+++ b/docs/upgrade-guides/long-term-support.mdx
@@ -3,8 +3,6 @@ title: Long term support policy
description: Clerk's policy for supporting past major versions of our SDKs
---
-# Long term support policy
-
This page explains the support plans for major versions of Clerk's SDKs. When a new major version of an official Clerk SDK is released, the previous version is placed into long term support (LTS) mode for a period of **one year**. During this period, new features and bugfixes will not be actively backported, however, any critical patches will be actively backported.
After the LTS period ends, there will be no further changes to the code for that version in any form, and we will strongly recommend upgrading to a new version for product and security improvements. While we strongly recommend upgrading to keep your application secure, all previous versions of SDKs will continue to function indefinitely even if not upgraded.
diff --git a/docs/upgrade-guides/progressive-sign-up.mdx b/docs/upgrade-guides/progressive-sign-up.mdx
index c9834c16ca..6b7f1f97e5 100644
--- a/docs/upgrade-guides/progressive-sign-up.mdx
+++ b/docs/upgrade-guides/progressive-sign-up.mdx
@@ -3,8 +3,6 @@ title: Progressive Sign Up
description: Progressive Sign Up is a new Sign Up flow that was introduced in Q2 2022.
---
-# Progressive Sign Up
-
If your application was created after June 7, 2022, you're already using Progressive Sign Up.
diff --git a/docs/upgrade-guides/url-based-session-syncing.mdx b/docs/upgrade-guides/url-based-session-syncing.mdx
index f2022440d5..76b63fef24 100644
--- a/docs/upgrade-guides/url-based-session-syncing.mdx
+++ b/docs/upgrade-guides/url-based-session-syncing.mdx
@@ -3,8 +3,6 @@ title: URL-based session syncing
description: Development instances communicating with the Frontend API without third-party cookies.
---
-# URL-based session syncing
-
Development instances created before December 6, 2022 communicate with [Clerk's Frontend API](https://clerk.com/docs/reference/frontend-api) using third-party cookies. More concretely, the authentication state of the current session is transported via a long-lived third-party cookie, between your frontend (e.g. `localhost:3000`) and the Frontend API (e.g. `clerk.happy.hippo-1.lcl.dev`).
URL-based session syncing (previously known as Cookieless Development mode) is a new, experimental mode of operation for development instances, in which communication with the Clerk Frontend API is done via URL decoration instead.
diff --git a/docs/upgrade-guides/v3-client-side-changes.mdx b/docs/upgrade-guides/v3-client-side-changes.mdx
index c2be0a936d..578d885494 100644
--- a/docs/upgrade-guides/v3-client-side-changes.mdx
+++ b/docs/upgrade-guides/v3-client-side-changes.mdx
@@ -1,10 +1,8 @@
---
-title: Client-side changes | Upgrade to V3
+title: Client-side changes (all frameworks)
description: Dive into Clerk's latest V3 update featuring the useAuth() hook, improved API consistency, and streamlined user methods.
---
-# Client-side changes (all frameworks)
-
## Upgrade dependencies
diff --git a/docs/upgrade-guides/v3-express-server-side-changes.mdx b/docs/upgrade-guides/v3-express-server-side-changes.mdx
index 352fe7ad0e..b987e1bda3 100644
--- a/docs/upgrade-guides/v3-express-server-side-changes.mdx
+++ b/docs/upgrade-guides/v3-express-server-side-changes.mdx
@@ -3,8 +3,6 @@ title: Express server-side changes
description: Dive into Clerk's latest V3 update.
---
-# Express server-side changes
-
Before starting this guide, please complete the [Client-side changes](/docs/upgrade-guides/v3-client-side-changes).
diff --git a/docs/upgrade-guides/v3-introduction.mdx b/docs/upgrade-guides/v3-introduction.mdx
index 06d38ad026..e7b8b50826 100644
--- a/docs/upgrade-guides/v3-introduction.mdx
+++ b/docs/upgrade-guides/v3-introduction.mdx
@@ -1,10 +1,8 @@
---
-title: Upgrading to V3
+title: Upgrading to v3
description: Learn how to upgrade from Version 2 to Version 3 of the Clerk JavaScript libraries.
---
-# Upgrading to v3
-
On March 24, 2022, Clerk launched Version 3 of its full suite of Javascript libraries, including our SDKs for React, Next.js, Gatsby, Remix, and Redwood. This guide helps developers upgrade from Version 2 to Version 3.
Need help with the migration? Feel free to [reach out to us](https://clerk.com/support).
diff --git a/docs/upgrade-guides/v3-nextjs-server-side-changes.mdx b/docs/upgrade-guides/v3-nextjs-server-side-changes.mdx
index bdff259e8c..a1a53ef7f5 100644
--- a/docs/upgrade-guides/v3-nextjs-server-side-changes.mdx
+++ b/docs/upgrade-guides/v3-nextjs-server-side-changes.mdx
@@ -1,10 +1,8 @@
---
-title: Next.js server-side changes | Upgrade to V3
+title: Next.js server-side changes
description: Dive into Clerk's latest V3 update.
---
-# Next.js server-side changes
-
Before starting this guide, please complete the [Client-side changes](/docs/upgrade-guides/v3-client-side-changes).
diff --git a/docs/users/deleting-users.mdx b/docs/users/deleting-users.mdx
index da9b7e50e7..5b2ec34984 100644
--- a/docs/users/deleting-users.mdx
+++ b/docs/users/deleting-users.mdx
@@ -3,8 +3,6 @@ title: Deleting users
description: Learn how to delete users from your Clerk backend.
---
-# Deleting users
-
Clerk currently supports deleting users through our [backend API](https://clerk.com/docs/reference/backend-api/tag/Users#operation/DeleteUser).
The [`deleteUser()`](/docs/references/backend/user/delete-user) method takes a single argument: the user ID of the user you want to delete. It can be accessed from the `users` sub-api of the `clerkClient` instance.
diff --git a/docs/users/metadata.mdx b/docs/users/metadata.mdx
index fc886285c5..cc98f8cdbb 100644
--- a/docs/users/metadata.mdx
+++ b/docs/users/metadata.mdx
@@ -3,8 +3,6 @@ title: User metadata
description: Metadata allows for custom data to be saved on the User object.
---
-# User metadata
-
Metadata allows for custom data to be saved on the [`User` object](/docs/users/overview#user-object). There are three types of metadata: "unsafe", "public", and "private".
| Metadata | Frontend API | Backend API |
diff --git a/docs/users/overview.mdx b/docs/users/overview.mdx
index 9d248b6d94..b2a7871fdd 100644
--- a/docs/users/overview.mdx
+++ b/docs/users/overview.mdx
@@ -3,8 +3,6 @@ title: Users
description: Learn how to manage your users in your Clerk application.
---
-# Users
-
Depending on your need, Clerk provides a set of tools to manage your users. You can manage user information [in the frontend](#manage-user-information-in-the-frontend) using Clerk's prebuilt components, React hooks, or JavaScript methods, or [in the backend](#manage-user-information-in-the-backend) using the Clerk Backend SDK.
## Understand the `User` object
diff --git a/docs/users/web3.mdx b/docs/users/web3.mdx
index 3aa64c5b9c..40355d3fe7 100644
--- a/docs/users/web3.mdx
+++ b/docs/users/web3.mdx
@@ -3,8 +3,6 @@ title: Use Clerk with Web3
description: Learn to install and initialize Clerk in a new Web3 application.
---
-# Use Clerk with Web3
-
Learn how to use Clerk to quickly and easily add secure authentication and user management to your Web3 application.
## Before you start
diff --git a/docs/why-clerk.mdx b/docs/why-clerk.mdx
index ff66c1f499..81ae8510d6 100644
--- a/docs/why-clerk.mdx
+++ b/docs/why-clerk.mdx
@@ -3,6 +3,4 @@ title: Why Clerk?
description: Learn how to use Clerk to quickly and easily add secure authentication and user management to your Next.js application. Clerk works seamlessly on both client side and server side components.
---
-# Why Clerk?
-
Learn how to use Clerk to quickly and easily add secure authentication and user management to your Next.js application. Clerk works seamlessly on both client side and server side components.
diff --git a/public/images/home/organizations-dark.png b/public/images/home/organizations-dark.png
new file mode 100644
index 0000000000..640ffa88ce
Binary files /dev/null and b/public/images/home/organizations-dark.png differ
diff --git a/public/images/home/organizations.png b/public/images/home/organizations.png
new file mode 100644
index 0000000000..74b7f0031a
Binary files /dev/null and b/public/images/home/organizations.png differ
diff --git a/public/images/home/user-object-dark.png b/public/images/home/user-object-dark.png
new file mode 100644
index 0000000000..e6476c8ce6
Binary files /dev/null and b/public/images/home/user-object-dark.png differ
diff --git a/public/images/home/user-object.png b/public/images/home/user-object.png
new file mode 100644
index 0000000000..305164f9c2
Binary files /dev/null and b/public/images/home/user-object.png differ
diff --git a/public/images/home/what-is-clerk-dark.png b/public/images/home/what-is-clerk-dark.png
new file mode 100644
index 0000000000..df345e7ee1
Binary files /dev/null and b/public/images/home/what-is-clerk-dark.png differ
diff --git a/public/images/home/what-is-clerk.png b/public/images/home/what-is-clerk.png
new file mode 100644
index 0000000000..3c7c992ae3
Binary files /dev/null and b/public/images/home/what-is-clerk.png differ