// clerk integration

Develop a Clerk-powered app against a public URL

Clerk's dev tools run on http://localhost just fine, but its OAuth providers (Google, Apple) and webhooks need HTTPS. Skip the local-cert dance — tunnel through lrok and Clerk sees a real https origin.

1 · Set up the lrok tunnel

  1. 1. Reserve

    $ lrok reserve clerk-dev
  2. 2. Run app

    $ npm run dev
  3. 3. Tunnel

    $ lrok http 3000 --hint clerk-dev

2 · Configure Clerk

  1. 1. Clerk dashboard → Webhooks → Add endpoint

    Endpoint URL: https://clerk-dev.lrok.io/api/webhook/clerk.

  2. 2. Pick events

    user.created, user.deleted, session.created at minimum.

  3. 3. Copy the signing secret as CLERK_WEBHOOK_SIGNING_SECRET

// clerk-specific gotcha

Clerk webhooks are signed via svix. The svix-id, svix-timestamp, and svix-signature headers must travel through your tunnel intact — lrok proxies them verbatim. If signature verification fails, it's almost always body parsing (raw bytes vs parsed JSON), not the tunnel.

More integrations