install
source · Clone the upstream repo
git clone https://github.com/Intense-Visions/harness-engineering
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Intense-Visions/harness-engineering "$T" && mkdir -p ~/.claude/skills && cp -r "$T/agents/skills/claude-code/react-client-rendering" ~/.claude/skills/intense-visions-harness-engineering-react-client-rendering-85c929 && rm -rf "$T"
manifest:
agents/skills/claude-code/react-client-rendering/SKILL.mdsource content
React Client Rendering
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
:createRootimport { 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
with a singleindex.html
from any static host.<div id="root"> - Configure your hosting to redirect all routes to
for client-side routing.index.html
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 (
+ route-based splitting), tree-shaking, and CDN cachingReact.lazy - 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.
Source
https://patterns.dev/react/client-side-rendering
Process
- 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.