You'll see:
- Console warning that Clerk has been loaded with development keys
- Social login works locally but not on your domain
- Keys start with pk_test_ / sk_test_ on the live site
Why it happens
Clerk development instances are for local testing and have usage limits. Production needs a production instance with its own keys, your own domain verified via DNS, and your own OAuth credentials for social providers.
How to fix it
-
Create the production instance
In the Clerk dashboard switch to Production and follow the setup. You'll get pk_live_ and sk_live_ keys.
-
Add DNS records
Clerk lists the records to add for your domain. Production requires a domain you own — not a hosting subdomain.
-
Use your own OAuth credentials
Shared dev credentials don't work in production. Create your own Google/GitHub OAuth apps and paste the client ID and secret into Clerk.
-
Swap env vars and redeploy
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_... CLERK_SECRET_KEY=sk_live_...