ALWAYS check auth INSIDE the action, not just middleware
Verify resource ownership before mutations
Production Build
Run npm run build && npm run start, NOT npm run dev
Docker must use standalone output
Pre-PR Checklist
[ ] No sequential awaits for independent data
[ ] Icons imported directly (not barrel)
[ ] Heavy components use next/dynamic
[ ] Server Actions have auth inside
[ ] Suspense around slow fetches
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: srbhr-resume-matcher-nextjs-performance3description: Next.js Performance4---56# Next.js Performance78## Before Writing Code9101. Read `docs/agent/architecture/nextjs-critical-fixes.md` for full patterns112. Check existing components in `apps/frontend/components/`1213## Critical Rules1415### Waterfalls1617- Use `Promise.all()` for independent fetches18- Wrap slow data in `<Suspense>` boundaries19- Defer `await` into branches where needed2021```tsx22// WRONG23const resumes = await fetchResumes();24const jobs = await fetchJobs();2526// RIGHT27const [resumes, jobs] = await Promise.all([fetchResumes(), fetchJobs()]);28```2930### Bundle Size3132- **NO barrel imports**: `import X from 'lucide-react'` is WRONG33- **YES direct imports**: `import X from 'lucide-react/dist/esm/icons/x'`34- Use `next/dynamic` for heavy components (editors, charts, PDF)35- Defer analytics with `ssr: false`3637```tsx38import dynamic from 'next/dynamic';39const HeavyEditor = dynamic(() => import('./HeavyEditor'), { ssr: false });40```4142### Server Actions4344- **ALWAYS** check auth INSIDE the action, not just middleware45- Verify resource ownership before mutations4647### Production Build4849- Run `npm run build && npm run start`, NOT `npm run dev`50- Docker must use standalone output5152## Pre-PR Checklist5354```55[ ] No sequential awaits for independent data56[ ] Icons imported directly (not barrel)57[ ] Heavy components use next/dynamic58[ ] Server Actions have auth inside59[ ] Suspense around slow fetches60```6162---63> Converted and distributed by [TomeVault](https://tomevault.io/claim/srbhr) — claim your Tome and manage your conversions.64<!-- tomevault:4.0:skill_md:2026-04-11 -->
Run npx skillmds@latest add tomevault-io/srbhr-resume-matcher-nextjs-performance in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Next.js Performance It is listed under Web & Frontend on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.