convex-clerk-project-setup

Installation
SKILL.md

Convex + Clerk setup

Auth spans three config stores that must agree. Most breakage is one of them naming a different thing than the other two.

Store Holds Set via
Clerk dashboard Convex integration activated, or a JWT template named convex Clerk UI only
Convex deployment CLERK_JWT_ISSUER_DOMAIN npx convex env set or Convex dashboard
Repo auth.config.ts provider, .env.local edit + npx convex dev

Token path: Clerk mints a JWT carrying aud: "convex", the browser sends it to Convex, Convex matches iss against CLERK_JWT_ISSUER_DOMAIN and aud against applicationID, then fetches signing keys from the issuer's JWKS endpoint.

Two ways Clerk mints that token

Establish which one you are on before diagnosing anything, because it decides what the network tab should show.

ConvexProviderWithClerk picks at runtime. From convex 1.44.0, dist/esm/react-clerk/ConvexProviderWithClerk.js:

Installs
40
Repository
zihad550/skills
First Seen
Aug 30, 2026