From dev-toolbox
Apply when writing, reviewing, or refactoring code in the Next.js frontend app. Covers stack, layout, design tokens, UI primitives, and frontend anti-patterns. The auth flow detail lives in a project-local vendor-*-bff skill if you ship one.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-toolbox:nextjs-frontend-standardsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
pnpm workspaces + Turborepo at the frontend root. Apps live in `apps/<name>/`; shared packages in `packages/`; tooling in `tools/config-*/`.
pnpm workspaces + Turborepo at the frontend root. Apps live in apps/<name>/; shared packages in packages/; tooling in tools/config-*/.
@theme and design tokens from @repo/config-tailwind.apps/<frontend>/app/api/proxy/[...path]/route.ts. Provider-specific detail belongs in a project-local vendor-*-bff skill.@repo/api; mutator routes everything through /api/proxy.NEXT_PUBLIC_API_MOCKING=enabled, defaults to disabled.@sentry/nextjs for error capture and tracing (see nextjs-sentry).Use the named tokens, not bare colours:
bg-BackgroundNeutralBaseDefaulttext-ContentNeutralStrongborder-BorderInputDefaultTokens live in @repo/config-tailwind/tokens.css. Standard Tailwind utilities (mt-4, px-2.5, flex, gap-2) remain lowercase — only the token names are PascalCase.
@repo/ui)Follow shadcn/Radix conventions:
forwardRef for every primitive that accepts refs.displayName set explicitly for DevTools.data-slot attribute on the root element of each primitive.class-variance-authority) for variants.cn() (from @repo/utils) for class merging — never string-concat or template literals for class names./api/proxy/... (the BFF). The browser doesn't have the bearer token; the BFF injects it server-side.{ user, isAuthenticated, returnUrl, tokenExpiry } only. Token handling is in the BFF.packages/api/src/generated/). Re-run pnpm generate after API contract changes.customInstance. It owns auth, error normalisation, and content-type negotiation. Going around it breaks all three.NEXT_PUBLIC_API_MOCKING defaults to disabled for a reason — accidentally shipping MSW responses is a data leak.| Command | What it does |
|---|---|
pnpm install | Install all workspace deps via pnpm + catalogs |
pnpm dev | Turbo routes to the frontend app; HTTPS on :3000 |
pnpm build | Production build via Turborepo; fails on type errors |
pnpm check-types | TypeScript-only validation (no emit) |
pnpm lint | Lint via oxlint (per workspace config) |
pnpm test | Vitest |
pnpm format | Prettier |
pnpm generate | Refresh Orval client (@repo/api); requires the upstream API running or a committed openapi/v1.json snapshot |
vendor-auth0-bff — full BFF auth flow detail.nextjs-ui-implementation — pixel-perfect UI workflow (Chrome MCP, Figma compare).nextjs-sentry — error capture patterns.nextjs-env-var — adding env vars end-to-end (Key Vault + Zod + .env.example).nextjs-vercel-react-best-practices — 45 performance rules.nextjs-verify-chrome — visual verification flow.turborepo-conventions — monorepo task config.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub tk-kamyk/dev-tools --plugin dev-toolbox