growthx-club/build-sprint-skills

convex-auth

Add authentication (passkeys/OAuth) to the current Convex app, including the auth.config.ts wiring.

Quelltext ansehen
Originales Skill-Dokument

Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.

<!-- GENERATED from convex-agents content/capabilities/auth.json — do not edit by hand. -->

Add sign-in to the app

Install and wire @convex-dev/auth for the current app: a provider (passkeys by default, or OAuth/password), the server config, the client hooks, and a sign-in UI — correctly, including the auth.config.ts that's the #1 real-world auth footgun.

Workflow

  1. Install @convex-dev/auth (pinned build) and add it to convex.config.ts. With pnpm, also pnpm add jose (it won't hoist otherwise); you need it for step 3.
  2. Add the provider in convex/auth.ts (Passkey by default; Password or OAuth like Google on request).
  3. Generate the auth keys HEADLESSLY. Do NOT run the interactive npx @convex-dev/auth wizard: it needs a login/TTY and hangs in non-interactive, anonymous, or CI runs (the #1 auth time-sink). Generate JWTPRIVATEKEY + JWKS deterministically with jose:

node -e 'import("jose").then(async({generateKeyPair,exportPKCS8,exportJWK})=>{const k=await generateKeyPair("RS256",{extractable:true});const priv=await exportPKCS8(k.privateKey);const pub=await exportJWK(k.publicKey);process.stdout.write(JSON.stringify({JWTPRIVATEKEY:priv.trimEnd().replace(/\n/g," "),JWKS:JSON.stringify({keys:[{use:"sig",...pub}]})}))})' > .auth-keys.json Then set JWTPRIVATEKEY and JWKS (from .auth-keys.json) plus SITEURL on the deployment. Prefer the Convex MCP `envSet` tool, one call per var, to avoid shell-quoting the multi-line key. CLI fallback: use the NAME=VALUE form (`npx convex env set "JWTPRIVATEKEY=$JWT"`), NEVER `env set JWTPRIVATEKEY "$JWT"` (the value starts with `-----BEGIN` and the CLI parses the leading `-` as an unknown flag). SITEURL is the dev URL (e.g. http://localhost:3000). Delete .auth-keys.json after.

  1. Write convex/auth.config.ts (the silently-always-signed-out bug lives here if it's wrong).
  2. Wire the client: ConvexAuthProvider, the sign-in component, and route guards. If you import shadcn/ui primitives (button, input, textarea, label, and so on), add them first with npx shadcn@latest add <name>; a missing @/components/ui/* is a hard build error.
  3. Verify a sign-in round-trips before declaring done.

Rules

  • Generate JWTPRIVATEKEY/JWKS with jose (extractable RS256; PKCS8 newlines to spaces; JWKS = {keys:[{use:"sig", ...publicJwk}]}). Do NOT run the interactive npx @convex-dev/auth wizard: it hangs headless/anonymous. Set the vars via the MCP envSet tool or the NAME=VALUE CLI form.
  • Always write auth.config.ts: a missing/incorrect one makes the app silently always-signed-out with no error.
  • Passkeys by default; only switch to password/OAuth on explicit request.
  • Install any shadcn/ui primitive you import up front (npx shadcn@latest add ...); a missing @/components/ui/* is a hard build failure.
  • Verify a real sign-in works before finishing.
aus demselben Repository

Weitere Skills

Alle Skills
growthx-club
Community

agentation

Add Agentation visual feedback toolbar to a Next.js project

Installationen
4
GitHub Stars
0
Aktualisiert
25. Sept.
growthx-club
Community

art-direction

Give the project one visual point of view, then generate images against it. Use before generating, editing or replacing any image asset — hero image, og:image, illustration, empty state, avatar, background, card art, favicon source. Also use when generated images look generic, "AI", off-brand, or when a set of images do not look like they belong to the same product. Skip for UI layout, CSS and component work, which belong to frontend-design and impeccable.

Installationen
4
GitHub Stars
0
Aktualisiert
25. Sept.
growthx-club
Community

checkpoint

Save the builder's work to git at every point the app works, and get them back to a working version when something breaks. Use the moment a feature works end to end, before any risky change, before a long build step, at the end of a session, and whenever they say something broke, "it worked before", "undo that", or "start over". Also use when they have been building a while with nothing committed.

Installationen
4
GitHub Stars
0
Aktualisiert
25. Sept.
growthx-club
Community

clearshot

Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI i

Installationen
4
GitHub Stars
0
Aktualisiert
25. Sept.