Introducing Clerk Expo SDK v2 with support for Expo Web
We are excited to announce that we have released @clerk/clerk-expo v2 with support for Expo Web! This means that you can create universal apps that run on Android, iOS, and the web all with a single codebase!
Getting started
If you haven't already created an Expo app with Clerk you can follow the Expo quickstart guide.
Otherwise, you can update your existing Expo app to the latest version of @clerk/clerk-expo by following the upgrade guide.
Use Clerk's prebuilt components on the web
Adding a sign-in page to your web app is now as easy as adding a single component:
Build universal authentication flows from one codebase
Leverage our hooks to build universal sign-in and sign-up views for Android, iOS, and web all from one codebase 🤯.
Here's an example of a OAuth sign-in flow, using the SDK's useOAuth hook:
Want to learn more about using Clerk with Expo? Check out @clerk/clerk-expo.
Excited specifically about Expo Web? Check out our Expo Web support guide.
Passkeys are now generally available for all Clerk users
After a thorough beta period, we're excited to announce that Passkeys are now generally available for all Clerk users. Passkeys are a simple-to-use and secure passwordless way to authenticate your users.
Passkeys are available as part of the Pro plan. Head to the Clerk Dashboard to activate Passkeys for your users or read through the Passkeys documentation to get started.
Enhanced end-to-end testing with Clerk using Cypress
We are thrilled to announce significant enhancements to our @clerk/testing package, making it easier to use Cypress with Clerk!
@clerk/testing@1.2.0 includes the following improvements:
Full browser support: We have resolved existing issues with Cypress and now support all Cypress-supported browsers, including Chrome, Electron, and Firefox.
Testing Tokens: The testing tokens mechanism that was introduced in the Playwright integration is now available in Cypress as well. This feature allows you to bypass bot detection mechanisms effortlessly, eliminating frustrating "Bot traffic detected" errors and enabling uninterrupted testing workflows.
Cypress Custom Commands: We've added custom Clerk commands that you can use inside your tests. These commands, like cy.clerkSignIn() and cy.clerkSignOut(), make it easy to handle sign-in and sign-out actions within your tests without interacting with the UI.
Astro is one of the most loved web frameworks for the past couple of years, it's a modern framework for fast content-driven websites, while also making it trivial to create dynamic web applications.
Today, we're proud to announce @clerk/astro, a new official SDK that allows developers to add authentication and authorization into their Astro application in matter of minutes.
The SDK comes fully equiped with Clerk's UI components, middleware, and low level utilities for your custom flows.
Use Clerk UI components
Clerk's pre-built UI components give you a beautiful, fully-functional user and organization management experience in minutes. Here's an example on how to use the <SignIn /> component in Astro.
Protect routes with Clerk Middleware
Use clerkMiddleware and the auth function to restrict logged out users from accessing the /user routes.
Individual page protection
If the /me page is not protected by the middleware, you can still protect the page directly. The code below uses Astro.locals.auth() in order redirect the user the sign-in page or render their userId.
Usage with React
Astro offers a way to use React inside your Astro application. @clerk/astro takes advantage of that and exposes components, hooks, and utilities for those cases.
This is only a quick preview of all that @clerk/astro offers.
For more information on the available API and how to get started building Astro applications with Clerk, check out our Astro Quickstart guide.
And last but not least, we would like to acknowledge and thank all of the contributors of the previous community SDK for Astro, which was a great source of inspiration for us.
Starting with @clerk/remix@4.2.0 our Remix SDK now supports Remix SPA mode. This means that you can now use Clerk in your Remix app without server-side rendering.
After creating a Remix app with SPA mode enabled, install the latest @clerk/remix package:
npm
yarn
pnpm
You can then use ClerkApp inside your root route and use Clerk's control components to protect your pages. Clerk will automatically detect that your Remix app is running in SPA mode and will take care of the rest.
Keys and options passed to clerkMiddleware() at runtime are available in Clerk’s server-side helpers.
Users building a multi-tenant application might need to provide different Clerk keys depending on the incoming request. Previously, you would need to pass these keys to all of Clerk’s Next.js server-side helpers. With Dynamic Keys support, keys passed to clerkMiddleware() are made available to auth() and other server-side helpers.
With a centralized place for passing server-side options, implementing a multi-tenant application that requires dynamic Clerk keys should be much more straightforward. This feature is available as of @clerk/nextjs@5.2.x.
Check out the documentation for additional details and happy building!