Server Client Page Split

Separate server and client components in Next.js App Router pages.

Updated Apr 30, 2026
One-click install
npx skills add https://github.com/bytetalent/docs --skill server-client-page-split
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Server Client Page Split
Source: https://github.com/bytetalent/docs/tree/main/skills/paths/server-client-page-split
Command: npx skills add https://github.com/bytetalent/docs --skill server-client-page-split

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

This Skill provides a pattern for separating server-side rendering (RSC) from client-side interactivity in Next.js App Router, enhancing performance and maintainability.

Core Features & Use Cases

  • Server-Client Separation: Defines clear boundaries between server-side and client-side code.
  • Suspense Requirement: Ensures proper lazy loading and performance for pages using useSearchParams.
  • Use Cases: Ideal for pages that require server-side data fetching but also benefit from client-side interactivity, such as wizards and entity list pages.

Quick Start

Implement the Server Client Page Split pattern in your Next.js project by creating a 'page.tsx' file for server-side logic and a 'page-client.tsx' file for client-side interactivity.

Frequently Asked Questions about Server Client Page Split

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I separate server-side rendering from client-side interactivity in Next.js App Router?

Separate server-side rendering from client-side interactivity in Next.js App Router by splitting your code into a 'page.tsx' file for server-side logic and a 'page-client.tsx' file for client-side state management. This pattern enhances performance and maintainability.

Why does my Next.js App Router page using useSearchParams need Suspense?

Pages using useSearchParams require Suspense to ensure proper lazy loading and performance during server-client separation. This boundary prevents the client from blocking the server-rendered HTML stream.

When should I use server-client page separation in a React application?

Use server-client page separation in React when a route requires server-side data fetching alongside client-side interactivity. This pattern is ideal for complex interfaces like wizards and entity list pages.

Does server-client page separation require the use client directive in Next.js?

Server-client page separation requires understanding of React's 'use client' feature to define clear boundaries. You apply this directive in the 'page-client.tsx' file to enable client-side state management.

What is the best way to optimize Next.js App Router performance for pages with mixed data fetching and state?

The best way to optimize Next.js App Router performance for mixed pages is implementing a server-client page split. Defining clear boundaries between server-side data fetching and client-side state management optimizes route performance.

Can I manage client-side state in a server-rendered Next.js App Router component?

You cannot manage client-side state directly in a server-rendered component. You must split the route into a server-side 'page.tsx' and a client-side 'page-client.tsx' to handle interactivity without breaking the server-client separation.