> clerk-setup

Add Clerk authentication to any project by following the official quickstart guides.

fetch
$curl "https://skillshub.wtf/Harmeet10000/skills/clerk-setup?format=md"
SKILL.mdclerk-setup

Adding Clerk

This skill sets up Clerk for authentication by following the official quickstart documentation.

Quick Reference

StepAction
1. Detect frameworkCheck package.json dependencies
2. Fetch quickstartUse WebFetch on the appropriate docs URL
3. Follow instructionsExecute the steps from the official guide
4. Get API keysFrom dashboard.clerk.com

Framework Detection

Check package.json to identify the framework:

DependencyFrameworkQuickstart URL
nextNext.jshttps://clerk.com/docs/nextjs/getting-started/quickstart
@remix-run/reactRemixhttps://clerk.com/docs/remix/getting-started/quickstart
astroAstrohttps://clerk.com/docs/astro/getting-started/quickstart
nuxtNuxthttps://clerk.com/docs/nuxt/getting-started/quickstart
react-routerReact Routerhttps://clerk.com/docs/react-router/getting-started/quickstart
@tanstack/react-startTanStack Starthttps://clerk.com/docs/tanstack-react-start/getting-started/quickstart
react (no framework)React SPAhttps://clerk.com/docs/react/getting-started/quickstart
vueVuehttps://clerk.com/docs/vue/getting-started/quickstart
expressExpresshttps://clerk.com/docs/expressjs/getting-started/quickstart
fastifyFastifyhttps://clerk.com/docs/fastify/getting-started/quickstart
expoExpohttps://clerk.com/docs/expo/getting-started/quickstart

For other platforms:

  • Chrome Extension: https://clerk.com/docs/chrome-extension/getting-started/quickstart
  • Android: https://clerk.com/docs/android/getting-started/quickstart
  • iOS: https://clerk.com/docs/ios/getting-started/quickstart
  • Vanilla JavaScript: https://clerk.com/docs/js-frontend/getting-started/quickstart

Decision Tree

User Request: "Add Clerk" / "Add authentication"
    │
    ├─ Read package.json
    │
    ├─ Existing auth detected?
    │   │
    │   ├─ YES → Audit current auth → Create migration plan
    │   │        → See "Migrating from Another Auth Provider"
    │   │
    │   └─ NO → Fresh install
    │
    ├─ Identify framework from dependencies
    │
    ├─ WebFetch the appropriate quickstart URL
    │
    └─ Follow the official instructions step-by-step

Setup Process

1. Detect the Framework

Read the project's package.json and match dependencies to the table above.

2. Fetch the Quickstart Guide

Use WebFetch to retrieve the official quickstart for the detected framework:

WebFetch: https://clerk.com/docs/{framework}/getting-started/quickstart
Prompt: "Extract the complete setup instructions including all code snippets, file paths, and configuration steps."

3. Follow the Instructions

Execute each step from the quickstart guide:

  • Install the required packages
  • Set up environment variables
  • Add the provider/middleware
  • Create sign-in/sign-up routes if needed
  • Test the integration

4. Get API Keys

Two paths for development API keys:

Keyless (Automatic)

  • On first SDK initialization, Clerk auto-generates dev keys and shows "Claim your application" popover
  • No manual key setup required—keys are created and injected automatically
  • Simplest path for new projects

Manual (Dashboard)

  • Get keys from dashboard.clerk.com if Keyless doesn't trigger
  • Publishable Key: Starts with pk_test_ or pk_live_
  • Secret Key: Starts with sk_test_ or sk_live_
  • Set as environment variables: NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY

Migrating from Another Auth Provider

If the project already has authentication, create a migration plan before replacing it.

Detect Existing Auth

Check package.json for existing auth libraries:

  • next-auth / @auth/core → NextAuth/Auth.js
  • @supabase/supabase-js → Supabase Auth
  • firebase / firebase-admin → Firebase Auth
  • @aws-amplify/auth → AWS Cognito
  • auth0 / @auth0/nextjs-auth0 → Auth0
  • passport → Passport.js
  • Custom JWT/session implementation

Migration Process

  1. Audit current auth - Identify all auth touchpoints:

    • Sign-in/sign-up pages
    • Session/token handling
    • Protected routes and middleware
    • User data storage (database tables, external IDs)
    • OAuth providers configured
  2. Create migration plan - Consider:

    • User data export - Export users and import via Clerk's Backend API
    • Password hashes - Clerk can upgrade hashes to Bcrypt transparently
    • External IDs - Store legacy user IDs as external_id in Clerk
    • Session handling - Existing sessions will terminate on switch
  3. Choose migration strategy:

    • Big bang - Switch all users at once (simpler, requires maintenance window)
    • Trickle migration - Run both systems temporarily (lower risk, higher complexity)

Migration Reference

Common Pitfalls

LevelIssueSolution
CRITICALMissing await on auth()In Next.js 15+, auth() is async: const { userId } = await auth()
CRITICALExposing CLERK_SECRET_KEYNever use secret key in client code; only NEXT_PUBLIC_* keys are safe
HIGHMissing middleware matcherInclude API routes: `matcher: ['/((?!.\..
HIGHClerkProvider not at rootMust wrap entire app in root layout/App component
HIGHAuth routes not publicAllow /sign-in, /sign-up in middleware config
HIGHLanding page requires authTo keep "/" public, exclude it: `matcher: ['/((?!.\..
MEDIUMWrong import pathServer code uses @clerk/nextjs/server, client uses @clerk/nextjs

See Also

  • custom-flows/ - Custom sign-in/up components
  • syncing-users/ - Webhook → database sync
  • managing-orgs/ - B2B multi-tenant organizations
  • testing/ - E2E testing setup
  • nextjs-patterns/ - Advanced Next.js patterns

Documentation

> related_skills --same-repo

> vibe-ppt

Convert this into a web based slide deck using reveal.js. Use the following brand colour and logo. Primary colour: #EE4822 Theme: Light Logo: https://media.licdn.com/dms/image/v2/D560BAQFeaNrDEATcKQ/company-logo_200_200/company-logo_200_200/0/1709465010800/100xengineers_logo?e=2147483647&v=beta&t=qKncqAfB_j9ckDOxOx1eN9EEPocLTbNqliLnAU3sP6c Slide Content: Vibe Coding with Gemini Canvas Slide 1: Vibe Coding with Gemini Canvas Slide 2: What is Vibe Coding? Vibe Coding: Use natural language pro

> upwork-scrape-apply

# Upwork Job Scrape & Apply Pipeline Scrape Upwork jobs matching AI/automation keywords, generate personalized cover letters and proposals, and output to a Google Sheet with one-click apply links. ## Inputs - **Keywords**: List of search terms (default: automation, ai agent, n8n, gpt, workflow, api integration, scraping, ai consultant) - **Limit**: Max jobs to fetch (default: 50) - **Days**: Only jobs from last N days (default: 1 = last 24 hours) - **Filters**: - `--verified-payment`: Only

> ui-ux-pro-max

UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: g

> typescript-magician

Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded/opaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.

┌ stats

installs/wk0
░░░░░░░░░░
github stars6
░░░░░░░░░
first seenApr 3, 2026
└────────────