Clerk is the easiest way to add authentication and user management to your React application. Add sign up, sign in, and profile management to your application in minutes.
- React v18+
- Node.js
>=18.17.0
or later
npm install @clerk/clerk-react
npm run build
To build the package in watch mode, run the following:
npm run dev
Clerk requires your application to be wrapped in the <ClerkProvider/>
context.
If using Vite, set VITE_CLERK_PUBLISHABLE_KEY
to your Publishable key in your .env.local
file to make the environment variable accessible on process.env
and pass it as the publishableKey
prop.
import { render } from 'react-dom';
import { ClerkProvider, SignedIn, SignedOut, SignInButton, UserButton } from '@clerk/clerk-react';
const publishableKey = process.env.VITE_CLERK_PUBLISHABLE_KEY;
render(
<ClerkProvider publishableKey={publishableKey}>
<App />
</ClerkProvider>,
document.getElementById('root'),
);
function App() {
return (
<>
<h1>Hello Clerk!</h1>
<SignedIn>
<UserButton afterSignOutUrl={window.location.href} />
</SignedIn>
<SignedOut>
<SignInButton mode='modal' />
</SignedOut>
</>
);
}
For further details and examples, please refer to our Documentation.
You can get in touch with us in any of the following ways:
- Join our official community Discord server
- Create a GitHub Discussion
- Contact options listed on our Support page
We're open to all community contributions! If you'd like to contribute in any way, please read our contribution guidelines.
@clerk/clerk-react
follows good practices of security, but 100% security cannot be assured.
@clerk/clerk-react
is provided "as is" without any warranty. Use at your own risk.
For more information and to report security issues, please refer to our security documentation.
This project is licensed under the MIT license.
See LICENSE for more information.