Skip to main content

Clerk Changelog

Last-used sign-in method badge

Category
Product
Published

Users can now easily identify their last-used sign-in method with a visual badge indicator.

The sign-in experience now includes a helpful badge that displays on the last-used sign-in method, making it easier for users to quickly identify and select their previously used authentication option.

The badge appears automatically based on the user's sign-in history and requires no additional configuration from developers on new applications.

Existing applications can opt-in to this feature for their instances via the Clerk Dashboard.

Contributors
Tom Milewski
George Vanjek

Share this article

Android SDK General Availability

Category
Android
Published

The Clerk Android SDK has reached general availability, delivering production-ready authentication and user management for native Android applications.

Today marks a significant milestone in our commitment to providing exceptional authentication experiences across all platforms. After a successful beta, we're thrilled to announce that the Clerk Android SDK is now generally available! The Clerk Android SDK addresses the need for first-class native authentication head-on. Built from the ground up with Kotlin and following Android's latest development standards, it provides the robust, idiomatic experience that Android developers expect while maintaining the simplicity and power that define all Clerk products. Let's explore what makes this release special.

Organization support

A new feature in this release is organization support. This allows you to create and manage organizations within your Android application.

scope.launch {
  Organization.create(name = "My Organization")
        .onSuccess { organization ->
          // Organization created successfully
        }
        .onError { error ->
          // Error creating organization
        }
}

Jetpack Compose

The Clerk Android SDK was built with Jetpack Compose in mind, allowing you to harness its declarative approach to user interfaces on all Android platforms.

MainActivity.kt
@Composable
fun MainActivity() {
  Column {
    if(Clerk.user != null) {
      Text("Hello, ${Clerk.user.id}")
    } else {
      Text("You are signed out")
    }
  }
}

Coroutines

The Clerk Android SDK makes use of the latest in coroutines, allowing your code to be as readable and expressive as possible.

// Create a new sign up
scope.launch {
  val signUp = SignUp.create(SignUp.CreateParams.Standard(emailAddress = "newuser@clerk.com", password = "••••••••••"))

  // Send an email with a one time code
  // to verify the user's email
  signUp.prepareVerification(SignUp.PrepareVerificationParams.EmailCode)
}

Social Connections (OAuth)

Authenticate with your favorite social providers in just a few lines of code.

scope.launch {
  SignIn.authenticateWithRedirect(SignIn.AuthenticateWithRedirectParams.OAuth(provider = OAuthProvider.GOOGLE))
}

Session Management

Let the Clerk Android SDK take care of managing your user's authentication state so you can get back to building your app.

MainActivity.kt
@Composable
fun MainActivity() {
  Column {
    if(Clerk.session != null) {
      Text(Clerk.session.id)
    } else {
      Text("No session")
    }
  }

Migration from Beta

For existing beta users, simply update your SDK version to 0.1.10 to access all GA features and improvements.

Getting Started

Ready to integrate production-ready authentication into your Android app? Check out our comprehensive resources:

Looking Forward

The general availability of our Android SDK represents more than just a product milestone - it demonstrates our ongoing commitment to providing world-class authentication solutions across every platform where your users engage with your applications.

We're incredibly grateful to our beta community whose feedback was instrumental in shaping this release. As we continue expanding platform support and adding new authentication capabilities, the Android SDK will evolve alongside our broader ecosystem. Expect regular updates with new features, performance improvements, and expanded integration options.

Have questions about the GA release, or need help with migration or implementation? Our support team is ready to help, and our Discord community is more active than ever with developers sharing experiences and best practices.

The full SDK source code remains available on GitHub, where you can contribute, report issues, or simply explore how we've built this authentication solution for the Android ecosystem.

Contributor
Sam Wolfand

Share this article

Fetch user subscription

Category
Billing
Published

Fetch a user's subscription from the Backend API

Developers can now fetch a user's subscription directly from our Backend API via GET /user/:user_id/billing/subscription.

Usage with Next.js

import { clerkClient, auth } from '@clerk/nextjs/server'

export async function getUserSubscription() {
  const { userId } = await auth.protect()
  const client = await clerkClient()
  return client.billing.getUserBillingSubscription(userId)
}

For more information and SDK availability, check out the documentation.

Contributors
Maurício Antunes
Pantelis Eleftheriadis

Share this article

Free trials for subscriptions

Category
Billing
Published

The easiest way to not charge your customers.

Free trials are a great way to get your users to their "a-ha!" moment and increase conversions, and Clerk Billing makes them easy to setup and use.

Straightforward Configuration

Enable free trials for any plan in the Clerk Dashboard and choose the duration of the trial. Or you can roll out the same free trials configuration for many plans at once.

Existing users will see no change to their subscriptions, but any new signups will get your configured free trial before their card is charged. Change your configuration at any time, and it will take effect for any new signups after that point.

Easy to Manage

You can cancel your users' free trials at any point from the Clerk Dashboard, or opt to have their subscription end when the free trial ends. You can also extend the free trial of any user at any time during their trial.

Best Practices Built-In

Free trials automatically use industry best practices without any configuration. Users will be required to enter a credit card before starting their trial, mitigating abuse and ensuring when their trial ends they transition smoothly to a paid subscription. And users that have already paid you or already had a free trial are ineligible to start a new one.

Get Started Today

Ready to increase your conversions? Get started with free trials:

We're working to make Clerk Billing the best way to charge (and not charge) your users. Have any questions or suggestions? Reach out through our feedback portal or join the discussion in our Discord community.

Contributor
Clerk

Share this article

Base SSO Provider

Category
SSO
Published

Enable users to sign in to your application using their Base accounts, Coinbase's Layer 2 blockchain

Easily integrate Base, Coinbase's Layer 2 blockchain built on Ethereum, into your applications either as an authentication method or an external account that can be linked to your existing users. 🟦

Check out our Base integration documentation for detailed setup instructions and examples.

Contributor
Clerk

Share this article

Fetch organization subscription

Category
Billing
Published

Fetch an organization's subscription from the Backend API

Developers can now fetch an organization's subscription directly from our Backend API via GET /organization/:org_id/billing/subscription.

Usage with Next.js

import { clerkClient } from '@clerk/nextjs/server'

export async function getOrganizationSubscription() {
  const client = await clerkClient()
  return client.billing.getOrganizationBillingSubscription('org_xxxxx')
}

For more information and SDK availability, check out the documentation.

Contributors
Maurício Antunes
Pantelis Eleftheriadis

Share this article