Clerk for the AI era
- Category
- Engineering
- Published
We're doubling down on making Clerk composable by default, with clear APIs and tools that work as well for human developers as they do for agents.

Since 2019, Clerk has focused on bringing a best-in-class developer experience to the auth and user management ecosystem. We built for frontend developers newly empowered to ship full-stack applications, armed with React components and platforms like Vercel. Clerk's prebuilt components were a huge accelerant for this ecosystem. The ability for us to embed so much functionality and logic into so few lines of code felt magical at the time. It still does today.
Things are different now. The industry has undergone a radical shift over the last year. Components remain a powerful, token-efficient abstraction, but it's never been easier to prompt an app into existence, turning what was once days of work into minutes. This shift is reshaping how we build Clerk.
We're doubling down on making a best-in-class developer experience for however you choose to build. We've revamped our APIs for building your core authentication flows, shipped the first version of our agent skills and MCP server, and are continuing investment in tools and APIs that will help Clerk support whatever you're building next.
Components that work with you
Our components remain a phenomenal way to use Clerk. We've iterated on and modernized the styling capabilities for our components. Our beloved appearance prop has gotten a refresh, we've introduced more flexible theming primitives, and invested in making sure our components can match your existing design system. We've also introduced a dedicated changelog for our components, so we can share the iterative improvements you're getting out-of-the-box when you opt to build with Clerk's components.
Components are a powerful way to build with Clerk, and you have always been able to go a long way by bringing your own CSS. To explore our components and their theming capability, check out the Theme Editor our team recently shipped!
Primitives built for agents
Components are great, but many users want total control over their UI, especially as AI has the ability to build so quickly. This is why we're reinvesting in making our React hooks and lower-level APIs even better.
Our useSignUp(), useSignIn(), useCheckout(), and useWaitlist() hooks have been redesigned to make building custom UIs with Clerk easier. We've simplified state management, redesigned the API surface, and removed the need for tedious boilerplate. We've also invested in making sure the updated APIs perform well when used with AI tools, and we're tipping the scales by embedding examples and the latest reference content into our agent skills. These primitives are the foundation for building custom UIs with Clerk.
// signIn is stateful, updates will trigger re-renders
const { signIn, fetchStatus, errors } = useSignIn()
// Step methods map directly to the flow
await signIn.password({ emailAddress, password })
await signIn.emailCode.sendCode()
await signIn.emailCode.verifyCode({ code })
// Read the resource's status directly
signIn.status // 'needs_first_factor' | 'needs_second_factor' | 'complete'
// Built-in fetch state
fetchStatus // 'idle' | 'fetching'
// Structured field-level errors
errors.fields.identifier // "Couldn't find your account"
errors.fields.password // "Password is incorrect"More copy-to-install examples
Shadcn/ui has become the lingua franca of UI development over the last year, and both developers and AI tools have gravitated to the copy-to-install model. We've already launched a Clerk shadcn/ui registry, with a growing library of copy-to-install examples for developers and AI tools. This model pairs really nicely with the improved primitives, and we're excited to continue building and sharing polished components that you can use as a starting point for your own custom UIs.
Codified best practices
Clerk's secret sauce expands beyond our components; we have years of experience building authentication and user management flows, processing billions of events, and we're committed to sharing those learnings with you. Auth flows can be deceptively complicated and riddled with edge cases. We want to help you tackle that complexity. The team is hard at work on expanding our MCP server, agent skills, and building tools that will help ensure your authentication UIs have best practices baked in, and account for edge cases. When you use our agent tooling, you'll get the latest docs and best practices straight from Clerk, whether your building with our components or rolling your own UI.
Looking forward
The choice to use Clerk doesn't hinge on committing to a specific component abstraction. Whether you're dropping in our components, crafting pixel-perfect UIs by hand, or letting your agents handle it for you, Clerk has your back. We're committed to making Clerk composable by default, with clear APIs that work as well for human developers as they do for agents.
This is just the beginning; we're excited to share our progress over the next few months as we continue to shape Clerk for however you build. Stay tuned...
If you want to learn more about recent improvements for a more composable Clerk, check out what we've shipped in Core 3.

Ready to get started?
Start building