Going to production with Clerk Deploy
- Category
- Engineering
- Published
Take a Clerk app to production with a single, resumable command, all from your terminal.

Your app's at a point where it's almost ready to go live.
Users can sign up, sign in, and manage their accounts. Organization owners can create workspaces and invite members. Billing works as expected; your plans are set up, and your users can subscribe to them. It feels shippable.
Not yet, though.
You still need to set up a production instance, which involves a few steps spread across different pages and external services. The dashboard handles this well, and on a focused day, the whole thing can be done in under 30 minutes.
But what if the final stretch from 'almost ready' to 'ready' had fewer clicks and less context switching?
Our new CLI brings that flow directly to your terminal.
Meet clerk deploy.
A different kind of deploy
clerk deploy doesn't ship code. Your hosting platform still takes care of that. Instead, it's a helpful wizard that walks you through everything Clerk needs to take your app to production.
In an interactive terminal session, you get the wizard. Without one (or with the --mode agent flag), clerk deploy instead returns a JSON snapshot of your deployment state so coding agents can check progress and suggest the next step. For agents, this command is purely informational and doesn't perform any changes.
If you need automated deployments for CI/CD pipelines or agent workflows, you can compose the same flow from a handful of lower-level Clerk commands. Stay tuned for a follow-up post.
Now let's see what the wizard can do.
How it works
The wizard runs from your project root.
clerk deployIt starts with a pre-flight pass over your linked app, confirming the app is ready to deploy, identifying which OAuth providers need production credentials, and checking for any deployment already in progress.
On the first run, the wizard walks through the steps below. If a production instance already exists but isn't fully configured, it picks up from the next pending step.
Production domain
The wizard begins by asking for your production domain. Confirming it creates a fresh production instance in your Clerk account and registers the domain to it.
The deploy is resumable from this point on.
CNAME records
Next is DNS. The wizard prints the CNAME records to add at your DNS provider. Propagation runs in the background while OAuth setup continues, with verification happening at the end.
OAuth credentials
For each provider detected, the wizard shows the exact redirect URI to register, then prompts for the Client ID and Client Secret. Google can also load OAuth credentials from a JSON file. Apple reads the .p8 private key from a file path.
Verification
After OAuth, the wizard verifies DNS, SSL, and email DNS together. If propagation is still in progress, clerk deploy status shows where each one stands, plus OAuth provider readiness and the next step to take. Rerunning clerk deploy resumes verification.
Production summary
Once verification clears, a production summary prints with your live URL and production instance ID.
Ready to ship?
With clerk deploy, the CLI now covers Clerk's full arc from development to production. And while the dashboard is always there when you need it, that's one less side-quest pulling you out of flow. The gap between 'almost ready' and 'live' just got smaller.
So this is your nudge. If your app's been on localhost too long, what's stopping you from going to production? Make today the day.
Open a terminal and give it a try:
clerk deployHappy shipping!

Ready to get started?
Start building