agentsclimarketplace

Nextjs server components

Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/nextjs-server-components

RSC usage, ''use client'' directive, and Component Purity. Use when working with React Server Components or deciding where to place the ''use client'' boundary. (triggers: app/**/*.tsx, src/app/**/*.tsx, app/**/*.jsx, src/app/**/*.jsx, use client, Server Component, Client Component, hydration)From its SKILL.md

Install
npx -y skills add ComeOnOliver/skillshub --skill nextjs-server-components

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

2.7 KB, 561 tokens by cl100k_base, as published. Nobody here has run it

Server & Client Components

Priority: P0 (CRITICAL)

[!WARNING] If the project uses the pages/ directory instead of the App Router, ignore this skill entirely.

Next.js (App Router) uses React Server Components (RSC) by default.

Implementation Guidelines

  • Next.js Default: Use React Server Components (RSC) for 90% of your UI. Leverage async components for direct data fetching.

  • Client Boundary: Only use the 'use client' directive for interactivity (e.g., onClick), hooks (useState, useEffect), or browser APIs. Place the boundary at the leaf nodes to maximise RSC benefits and server-side rendering.

  • Composition: Use <ClientWrapper><ServerDataComponent /></ClientWrapper> to pass Server Components as children to Client Components. Avoid Circular Dependencies between server and client. Direct database access: await db. queries inside async RSCs, and await params before accessing route segments.

  • Data Fetching: Use fetch with cache: 'no-store' or revalidate: 0 to opt out of static rendering when needed.

  • Loading & UI: Use Suspense triggers around slow async components to enable Streaming and better UX. Use loading.tsx for route-level loading states.

  • Serialization: Ensure all props passed from Server to Client are Serializable (No functions, Dates, or Classes).

  • Security: Never share secrets or server-only logic within Client Components. Use server-only package to enforce this.

  • Hydration: Server sends HTML + RSC payload (JSON); client hydrates only Client Components. Server Components produce zero JS in the client bundle — no useState/useEffect shipped to browser.

  • Server-in-Client: You cannot import a Server Component directly into a Client Component.

    • Fix: Pass Server Component as children prop to the Client Component. See Composition Example.

Anti-Patterns

  • No secrets in Client Components: Use server-only package to prevent accidental bundling.
  • No full DB objects passed to client: Minimize serialized props; pass IDs when possible.
  • No useState/useEffect in Server Components: These are Client Component-only hooks.
  • No 'use client' at tree root: Push the boundary to leaf components.

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.