Skip to main content

Clerk Changelog

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

Sign-in with Base

Category
Web3
Published

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

We’re excited to announce that Clerk has integrated Base Account. Base is an on-chain stack incubated by Coinbase that makes building, earning, and owning simple and accessible. Now, anyone can "Sign-in with Base" and their account details will follow them into Clerk.

Smart wallet technology makes sign-in fast. By combining Base’s open-internet foundation with Clerk’s developer-first authentication, we make it simple for builders and users to connect in one secure and seamless flow.

SignIn with Base and UserProfile with Base connection

To get started, enable Base in your Clerk Dashboard.

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

Contributor
Jacek Radko

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

"Personal Accounts" disabled by default

Category
Organizations
Published

B2B applications can now enforce organization membership much more easily

Starting today for new applications, when you enable our Organizations featureset, your users will be required to create or join an organization. Previously, we defaulted to allowing a "Personal Account" which caused many of you building B2B applications to add workarounds to force organization membership. We had it backwards.

And if you're using Clerk components, this just works. Users are immediately prompted upon sign-up or sign-in.

Opt-in to Personal Accounts

If you'd still like Personal Accounts to exist alongside Organizations in for your application, thats still possible. Simply toggle "Enable Personal Account" at the moment you enable organization or in the Organization settings in the Clerk Dashboard.

Migration considerations

Due to the way this could change some of the way your application handles sessions, this functionality is only available for newly created applications. If you're running an existing application and want to adopt the new default, please contact our support team to discuss a migration strategy.

Learn more

For detailed implementation guides and examples, check out our documentation on organization-based authentication.

Contributors
Laura Beatris
Nicolas Lopes
Iago Dahlem

Share this article

User cohorts in growth charts

Category
Dashboard
Published

Trace growth metrics all the way down to the user

We recently shipped an updated growth chart in the Clerk Dashboard, giving better insight into your application’s growth—including detailed statuses like new, reactivated, retained, and even churned users.

Our latest upgrade goes a step further and now shows you exactly which users are part of those cohorts, enabling even more visibility into your application's growth and performance over time.

Example screenshot of chart and user cohort table

Note: The table of recent sign-ups has been replaced with user cohorts, providing a clearer and more detailed view of your users' activity.

Clerk is determined to become the best place for founders and builders to observe and understand their users. Head to the Overview section of the Clerk Dashboard to see it in action, and stay tuned for more.

Contributors
Josh Rowley
Max Barvian
Austin Calvelage
Nate Watkin

Share this article

Production Testing Tokens

Category
Testing
Published

Testing Tokens are now supported in production environments

Testing Tokens allow your automated tests to bypass Clerk's bot protections that might otherwise be triggered when interacting with Clerk-powered applications via automated browser agents. Previously, Testing Tokens were only for testing against Clerk development instances. With this update, Testing Tokens are now supported by Clerk production instances, allowing you to write tests against your production environment.

To make testing authenticated pages easier, the existing signIn test helper now allows authenticating a user directly by email address.

import { signIn } from '@clerk/testing/playwright'

test('sign in', async ({ page }) => {
  await signIn({ emailAddress: process.env.TEST_USER_EMAIL, page })

  // Navigate to a protected page for additional testing
  await page.goto('/protected')
})

To learn more about Testing Tokens, visit the documentation.

Contributors
Bryce Kalow
Alex Ntousias

Share this article