Render React entirely in the browser for highly interactive single-page applications
When to Use
Building dashboards, admin tools, or SPAs where SEO is not required
The application is behind authentication (no public search indexing needed)
Extremely dynamic UI where server rendering provides little benefit
Rapid prototyping or tooling (internal apps, developer tools)
Instructions
Use Vite or Create React App (legacy) to scaffold a pure client-rendered app.
Mount React at a root element with createRoot:
import { createRoot } from 'react-dom/client';
createRoot(document.getElementById('root')!).render(<App />);
For routing, use React Router or TanStack Router in client mode.
Serve a minimal index.html with a single <div id="root"> from any static host.
Configure your hosting to redirect all routes to index.html for client-side routing.
Details
Client-side rendering (CSR) sends an empty HTML shell to the browser; React builds the DOM entirely in JavaScript. The advantages are simplicity (no server) and rich interactivity; the disadvantages are slower Time to First Contentful Paint (FCP) and poor SEO.
When CSR is appropriate:
Applications requiring authentication before first meaningful content
Dashboards with real-time data that changes after load
Apps with high interactivity that would not benefit from SSR
Performance concerns:
Large JavaScript bundles increase time-to-interactive
Mitigate with code-splitting (React.lazy + route-based splitting), tree-shaking, and CDN caching
Core Web Vitals (LCP, FID/INP) are negatively affected by large bundles — measure before shipping
Versus SSR/SSG: If public SEO matters or First Contentful Paint is critical, use a framework with SSR (Next.js, Remix) or static generation instead.
Read the instructions and examples in this document.
Apply the patterns to your implementation, adapting to your specific context.
Verify your implementation against the details and edge cases listed above.
Harness Integration
Type: knowledge — this skill is a reference document, not a procedural workflow.
No tools or state — consumed as context by other skills and agents.
Success Criteria
The patterns described in this document are applied correctly in the implementation.
Edge cases and anti-patterns listed in this document are avoided.
1---2name: react-client-rendering3description: React Client Rendering4---5# React Client Rendering67> Render React entirely in the browser for highly interactive single-page applications89## When to Use1011- Building dashboards, admin tools, or SPAs where SEO is not required12- The application is behind authentication (no public search indexing needed)13- Extremely dynamic UI where server rendering provides little benefit14- Rapid prototyping or tooling (internal apps, developer tools)1516## Instructions17181. Use Vite or Create React App (legacy) to scaffold a pure client-rendered app.192. Mount React at a root element with `createRoot`:20 ```typescript21 import { createRoot } from 'react-dom/client';22 createRoot(document.getElementById('root')!).render(<App />);23 ```243. For routing, use React Router or TanStack Router in client mode.254. Serve a minimal `index.html` with a single `<div id="root">` from any static host.265. Configure your hosting to redirect all routes to `index.html` for client-side routing.2728## Details2930Client-side rendering (CSR) sends an empty HTML shell to the browser; React builds the DOM entirely in JavaScript. The advantages are simplicity (no server) and rich interactivity; the disadvantages are slower Time to First Contentful Paint (FCP) and poor SEO.3132**When CSR is appropriate:**3334- Applications requiring authentication before first meaningful content35- Dashboards with real-time data that changes after load36- Apps with high interactivity that would not benefit from SSR3738**Performance concerns:**3940- Large JavaScript bundles increase time-to-interactive41- Mitigate with code-splitting (`React.lazy` + route-based splitting), tree-shaking, and CDN caching42- Core Web Vitals (LCP, FID/INP) are negatively affected by large bundles — measure before shipping4344**Versus SSR/SSG:** If public SEO matters or First Contentful Paint is critical, use a framework with SSR (Next.js, Remix) or static generation instead.4546## Source4748https://patterns.dev/react/client-side-rendering4950## Process51521. Read the instructions and examples in this document.532. Apply the patterns to your implementation, adapting to your specific context.543. Verify your implementation against the details and edge cases listed above.5556## Harness Integration5758- **Type:** knowledge — this skill is a reference document, not a procedural workflow.59- **No tools or state** — consumed as context by other skills and agents.6061## Success Criteria6263- The patterns described in this document are applied correctly in the implementation.64- Edge cases and anti-patterns listed in this document are avoided.
Run npx skillmds@latest add intense-visions/react-client-rendering 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.
React Client Rendering It is listed under Web & Frontend on SkillMD.
This skill has not completed SkillMD's automated safety review yet. 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.
Intense-Visions (@intense-visions) published this skill. Their other Agent Skills are listed on their SkillMD profile.