workleap/wl-logging · Archived

workleap-react-best-practices

React performance optimization guidelines for Single Page Applications (SPA) at Workleap. Use when writing, reviewing, or refactoring React SPA code to ensure optimal performance patterns. Triggers on tasks involving React components, state management, bundle optimization, re-render prevention, rendering performance, or JavaScript performance improvements. Covers async waterfall elimination, bundle size reduction, re-render optimization, rendering efficiency, JS micro-optimizations, and advance…

First seen Feb 28, 2026

Installation

$ npx skills add workleap/wl-logging --skill workleap-react-best-practices

Summary

  • React performance optimization guidelines for Single Page Applications (SPA) at Workleap.
  • Use when writing, reviewing, or refactoring React SPA code to ensure optimal performance patterns.
  • Triggers on tasks involving React components, state management, bundle optimization, re-render prevention, rendering performance, or JavaScript performance improvements.
  • Covers async waterfall elimination, bundle size reduction, re-render optimization, rendering efficiency, JS micro-optimizations, and advanced React patterns.
  • Does NOT cover server-side rendering (SSR), Next.js, or server components.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from workleap/wl-logging.

npx skills add workleap/wl-logging

Browse all from workleap/wl-logging

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

License LICENSE
Default branch main
Open issues 2
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1
More metadata
version
1

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,343 B
  • docs SUMMARY.md 628 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 7 installs

SKILL.md

Workleap React Best Practices

Performance optimization guide for React Single Page Applications (SPA), tailored for Workleap's SPA-first architecture.

When to Apply

Reference these guidelines when:

  • Writing new React components
  • Reviewing code for performance issues
  • Refactoring existing React code
  • Optimizing bundle size or load times
  • Debugging unnecessary re-renders

Rule Categories by Priority

Priority Category Impact Reference
1 Eliminating Waterfalls CRITICAL [async-rules.md](references/async-rules.md)
2 Bundle Size Optimization CRITICAL [bundle-rules.md](references/bundle-rules.md)
3 Re-render Optimization MEDIUM [rerender-rules.md](references/rerender-rules.md)
4 Rendering Performance MEDIUM [rendering-rules.md](references/rendering-rules.md)
5 JavaScript Performance LOW-MEDIUM [js-rules.md](references/js-rules.md)
6 Advanced Patterns LOW [advanced-rules.md](references/advanced-rules.md)

Quick Reference

1. Eliminating Waterfalls (CRITICAL)

Waterfalls are the #1 performance killer. Each sequential await adds full network latency.

  • Defer Await Until Needed - Move await into branches where actually used
  • Promise.all() for Independent Operations - Run independent async operations concurrently
  • Dependency-Based Parallelization - Use promise chaining for partial dependencies
  • Prevent Waterfall Chains - Start promises early, await late

Read [references/async-rules.md](references/async-rules.md) for detailed rules and code examples.

2. Bundle Size Optimization (CRITICAL)

Reducing initial bundle size improves Time to Interactive and Largest Contentful Paint.

  • Route-Based Code Splitting - Lazy-load each route so users only download code they visit
  • Avoid Barrel File Imports - Import directly from source files, not barrel re-exports
  • React.lazy for Heavy Components - Lazy-load large components not needed on initial render
  • Conditional Module Loading - Load modules only when feature is activated
  • Preload on User Intent - Preload heavy bundles on hover/focus

Read [references/bundle-rules.md](references/bundle-rules.md) for detailed rules and code examples.

3. Re-render Optimization (MEDIUM)

Reducing unnecessary re-renders minimizes wasted computation and improves UI responsiveness.

  • Defer State Reads - Don't subscribe to state only used in callbacks
  • Extract to Memoized Components - Enable early returns before computation
  • Hoist Default Non-primitive Props - Extract default values to constants for stable memo
  • Narrow Effect Dependencies - Use primitive dependencies in effects
  • Subscribe to Derived State - Subscribe to derived booleans, not raw values
  • Calculate Derived State During Render - Derive state during render, not effects
  • Functional setState - Use functional setState for stable callbacks
  • Lazy State Initialization - Pass function to useState for expensive values
  • Skip useMemo for Simple Expressions - Avoid memo for simple primitives
  • Put Logic in Event Handlers - Put interaction logic in event handlers, not effects
  • Transitions for Non-Urgent Updates - Use startTransition for non-urgent updates
  • useRef for Transient Values - Use refs for transient frequent values

Read [references/rerender-rules.md](references/rerender-rules.md) for detailed rules and code examples.

4. Rendering Performance (MEDIUM)

Optimizing the rendering process reduces the work the browser needs to do.

  • Animate SVG Wrapper - Animate div wrapper, not SVG element
  • CSS content-visibility - Use content-visibility for long lists
  • Hoist Static JSX - Extract static JSX outside components
  • Optimize SVG Precision - Reduce SVG coordinate precision
  • Activity Component (Experimental) - Use Activity for show/hide with state preservation
  • Explicit Conditional Rendering - Use ternary, not && for conditionals
  • useTransition for Loading - Prefer useTransition over manual loading state

Read [references/rendering-rules.md](references/rendering-rules.md) for detailed rules and code examples.

5. JavaScript Performance (LOW-MEDIUM)

Micro-optimizations for hot paths that can add up to meaningful improvements.

  • Avoid Layout Thrashing - Batch DOM writes, avoid interleaved reads
  • Build Index Maps - Use Map for repeated lookups
  • Cache Property Access - Cache object properties in loops
  • Cache Function Results - Cache repeated function calls in module-level Map
  • Cache Storage API Calls - Cache localStorage/sessionStorage reads
  • Combine Array Iterations - Combine multiple filter/map into one loop
  • Early Length Check - Check array length before expensive comparison
  • Early Return - Return early from functions
  • Hoist RegExp - Hoist RegExp creation outside loops
  • Loop for Min/Max - Use loop instead of sort for min/max
  • Set/Map Lookups - Use Set/Map for O(1) lookups
  • toSorted() Immutability - Use toSorted() to prevent mutation bugs

Read [references/js-rules.md](references/js-rules.md) for detailed rules and code examples.

6. Advanced Patterns (LOW)

Advanced patterns for specific cases that require careful implementation.

  • Event Handler Refs - Store event handlers in refs for stable subscriptions
  • Initialize Once - Initialize app once per load, not per mount
  • Stable Callback Refs - Stable callback refs for effects without re-runs

Read [references/advanced-rules.md](references/advanced-rules.md) for detailed rules and code examples.