Not in the top 1,000 by GitHub stars

PatternsDev/skills

Agent skills for https://patterns.dev

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

javascript/bundle-splitting/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/command-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/compression/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/dynamic-import/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/factory-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/flyweight-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/import-on-interaction/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/import-on-visibility/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/islands-architecture/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/js-performance-patterns/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/loading-sequence/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/mediator-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/mixin-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/module-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/observer-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/prefetch/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/preload/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/prototype-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/provider-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/proxy-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/prpl/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/route-based/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/singleton-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/static-import/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/third-party/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/tree-shaking/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/view-transitions/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/virtual-lists/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

javascript/vite-bundle-optimization/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/ai-ui-patterns/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/client-side-rendering/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/compound-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/hoc-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/hooks-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/incremental-static-rendering/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/presentational-container-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/progressive-hydration/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/react-2026/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/react-composition-2026/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/react-data-fetching/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/react-render-optimization/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/react-selective-hydration/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/react-server-components/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/render-props-pattern/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/server-side-rendering/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/static-rendering/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

react/streaming-ssr/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/async-components/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/components/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/composables/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/container-presentational/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/data-provider/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/dynamic-components/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/provide-inject/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/render-functions/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/renderless-components/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/script-setup/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

vue/state-management/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

48bf58a488cd → 48bf58a488cd

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 48bf58a488cd

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 48bf58a488cd210bcfad280b09c3a00403964d9d

258GitHub stars
0stars in 7 days
58skills in this repository
0commits in 30 days

Heat

0.4
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 30, 2026258

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

bundle-splitting

When your agent uses it

Teaches bundle splitting techniques for web performance. Use when your application has a large JavaScript bundle that affects load times or when you need to reduce FCP/LCP.

What it loads into context

Frontmatter

93 tokens

Always available to the agent

SKILL.md

968 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. When to Use
  2. Instructions
  3. Details
  4. Source

Files

  • SKILL.mdcore4,623 bytes
  • SKILL.mdcore4,623 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • bundle-splitting
  • command-pattern
  • compression
  • dynamic-import
  • factory-pattern
  • flyweight-pattern
  • import-on-interaction
  • import-on-visibility
  • islands-architecture
  • js-performance-patterns
  • loading-sequence
  • mediator-pattern
  • mixin-pattern
  • module-pattern
  • observer-pattern
  • prefetch
  • preload
  • prototype-pattern
  • provider-pattern
  • proxy-pattern
  • prpl
  • route-based
  • singleton-pattern
  • static-import
  • third-party
  • tree-shaking
  • view-transitions
  • virtual-lists
  • vite-bundle-optimization
  • ai-ui-patterns
  • client-side-rendering
  • compound-pattern
  • hoc-pattern
  • hooks-pattern
  • incremental-static-rendering
  • presentational-container-pattern
  • progressive-hydration
  • react-2026
  • react-composition-2026
  • react-data-fetching
  • react-render-optimization
  • react-selective-hydration
  • react-server-components
  • render-props-pattern
  • server-side-rendering
  • static-rendering
  • streaming-ssr
  • async-components
  • components
  • composables
  • container-presentational
  • data-provider
  • dynamic-components
  • provide-inject
  • render-functions
  • renderless-components
  • script-setup
  • state-management

Repository facts

License
No license detected
Created
Mar 24, 2026
Last pushed
Apr 15, 2026
Forks
27
Open issues
3
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 17 notes
  • javascript/bundle-splitting/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/compression/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/compression/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/compression/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/islands-architecture/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/static-import/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/static-import/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/tree-shaking/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/tree-shaking/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/virtual-lists/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/vite-bundle-optimization/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • javascript/vite-bundle-optimization/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • react/react-2026/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • react/react-2026/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • react/server-side-rendering/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • react/streaming-ssr/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • vue/data-provider/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 369 signals by file

javascript/bundle-splitting/SKILL.md

  • Network accessline 18
    When building a modern web application, bundlers such as [Webpack](https://webpack.js.org/) or [Rollup](https://rollupjs.org/guide/en/) take an application's source code, and bundle this together into one or more bundles. When a user visits
  • Network accessline 20
    JavaScript engines such as [V8](https://v8.dev/docs) are able to parse and compile data that's been requested by the user as it's being loaded. Although modern browsers have evolved to parse and compile the code as quickly and performantly 
  • Network accessline 56
    - [patterns.dev/vanilla/bundle-splitting](https://patterns.dev/vanilla/bundle-splitting)

javascript/command-pattern/SKILL.md

  • Network accessline 138
    - [patterns.dev/vanilla/command-pattern](https://patterns.dev/vanilla/command-pattern)
  • Network accessline 142
    - [Command Design Pattern](https://sourcemaking.com/design_patterns/command) - SourceMaking
  • Network accessline 143
    - [Command Pattern](https://refactoring.guru/design-patterns/command) - Refactoring Guru
  • Network accessline 144
    - [Command Pattern](https://www.carloscaballero.io/design-patterns-command/) - Carlos Caballero

javascript/compression/SKILL.md

  • Network accessline 27
    JavaScript is the second biggest [contributor to page size](https://almanac.httparchive.org/en/2020/page-weight#fig-2) and the second most [requested web resource](https://almanac.httparchive.org/en/2020/page-weight#fig-4) on the internet a
  • Network accessline 47
    - **Gzip** and **Brotli** are the most common ways to compress JavaScript and are widely supported by modern browsers. - **Brotli** offers a **better compression ratio** at similar compression levels. - **Next.js** provides [Gzip compressio
  • Network accessline 48
    - **Brotli** offers a **better compression ratio** at similar compression levels. - **Next.js** provides [Gzip compression by default](https://nextjs.org/docs/api-reference/next.config.js/compression) but recommends enabling it on an HTTP p
  • Network accessline 49
    - **Next.js** provides [Gzip compression by default](https://nextjs.org/docs/api-reference/next.config.js/compression) but recommends enabling it on an HTTP proxy like Nginx.
  • Network accessline 50
    - If you use **Webpack** to bundle your code, you can use the **[CompressionPlugin](https://github.com/webpack-contrib/compression-webpack-plugin)** for Gzip compression or the [BrotliWebpackPlugin](https://github.com/mynameiswhm/brotli-web
  • Network accessline 56
    Compression reduces the size of documents and files, so they take up less disk space than the originals. Smaller documents consume lower bandwidth and can be transferred over a network quickly. HTTP compression uses this simple concept to c
  • Network accessline 68
    To reduce payload sizes, you can minify JavaScript before compression. [Minification](https://web.dev/reduce-network-payloads-using-text-compression/#minification) complements compression by removing whitespace and any unnecessary code to c
  • Network accessline 72
    Multiple tools are available for [the minification of HTML, CSS, and JS](https://developers.google.com/speed/docs/insights/MinifyResources) resources. [Terser](https://github.com/terser-js/terser) is a popular JavaScript compression tool fo
  • Network accessline 86
    [Gzip](https://datatracker.ietf.org/doc/html/rfc1952) and [Brotli](https://opensource.googleblog.com/2015/09/introducing-brotli-new-compression.html) are the two [most common algorithms](https://almanac.httparchive.org/en/2020/compression#f
  • Network accessline 90
    The Gzip compression format has been around for almost 30 years and is a lossless algorithm based on the [Deflate algorithm](https://www.youtube.com/watch?v=whGwm0Lky2s&t=851s). The deflate algorithm itself uses a combination of the [LZ77 a
  • Network accessline 94
    All major browsers support Gzip. The [Zopfli](https://github.com/google/zopfli) compression algorithm is a slower but improved version of Deflate/Gzip, producing smaller GZip compatible files. It is most suitable for static compression, whe
  • Network accessline 98
    In 2015, Google introduced the [Brotli algorithm](https://opensource.googleblog.com/2015/09/introducing-brotli-new-compression.html) and the [Brotli compressed data format](https://datatracker.ietf.org/doc/html/rfc7932). Like GZip, [Brotli]
  • Network accessline 100
    Brotli is [supported](https://caniuse.com/?search=brotli) by all major servers and browsers today and is becoming increasingly [popular](https://almanac.httparchive.org/en/2020/compression#fig-5). It is also supported and can be easily enab
  • Network accessline 102
    Websites with a large user base, such as [OYO](https://tech.oyorooms.com/how-brotli-compression-gave-us-37-latency-improvement-14d41e50fee4) and [Wix](https://web.dev/wix/#brotli-compression-(vs.-gzip)), have improved their performance cons
  • Network accessline 116
    You can enable static compression as part of the build. If you use Webpack to bundle your code, you can use the [CompressionPlugin](https://github.com/webpack-contrib/compression-webpack-plugin) for Gzip compression or the [BrotliWebpackPlu
  • Network accessline 128
    Next.js provides [Gzip compression by default](https://nextjs.org/docs/api-reference/next.config.js/compression) but recommends enabling it on an HTTP proxy like Nginx. Both Gzip and Brotli are supported on the [Vercel platform](https://ver
  • Network accessline 130
    You can enable dynamic lossless compression on servers (including Node.js) that support different compression algorithms. The browser communicates the compression algorithms it supports through the [Accept-Encoding](https://developer.mozill
  • Network accessline 132
    This indicates that the browser supports Gzip and Brotli. You can enable different types of compression on your server by following instructions for the specific server type. For example, you can find instructions for enabling Brotli on the
  • Network accessline 134
    Brotli is recommended over other compression algorithms because it generates smaller file sizes. You can enable Gzip as a fallback for browsers that don't support Brotli. If successfully configured, the server will return the [Content-Encod
  • Network accessline 144
    To fully grasp the effects of JavaScript compression, you must also consider other aspects of JavaScript optimization, such as [route-based splitting](https://www.patterns.dev/posts/route-based/), [code-splitting](https://webpack.js.org/gui
  • Network accessline 152
    1. **Module**: Modules are discrete chunks of functionality designed to provide solid abstractions and encapsulation. See [Module pattern](https://www.patterns.dev/posts/module-pattern/) for more detail.
  • Network accessline 153
    2. **Bundle**: Group of distinct modules that contain the final versions of source files and have already undergone the loading and compilation process in the bundler. 3. **Bundle splitting**: The process utilized by bundlers to split the a
  • Network accessline 155
    4. **Chunk**: Adopted from Webpack terminology, a chunk is the final output of the bundling and code-splitting process. Webpack can split bundles into chunks based on the [entry](https://webpack.js.org/configuration/entry-context/) configur
  • Network accessline 163
    Every byte of the chunks required by a page needs to be downloaded and parsed/executed by user devices. This is the code that [directly affects](https://v8.dev/blog/cost-of-javascript-2019) the application performance. Since chunks are the 
  • Network accessline 200
    A potential solution that addresses these requirements is still in the works. However, Webpack v4's [SplitChunksPlugin](https://webpack.js.org/plugins/split-chunks-plugin/) and a granular chunking strategy can help increase the loading gran
  • Network accessline 204
    Next.js adopted the SplitChunksPlugin and implemented the following [Granular Chunking](https://web.dev/granular-chunking-nextjs/) strategy to generate Webpack chunks that address the granularity trade-off.
  • Network accessline 213
    The granular chunking strategy helped several Next JS apps reduce the total JavaScript used by the site. The granular chunking strategy was also implemented in [Gatsby](https://github.com/gatsbyjs/gatsby/pull/22253) with similar benefits ob
  • Network accessline 221
    - [patterns.dev/vanilla/compression](https://patterns.dev/vanilla/compression)

javascript/dynamic-import/SKILL.md

  • Network accessline 54
    Server-side rendering doesn't support React Suspense (yet). A good alternative to React Suspense is the [`loadable-components`](https://loadable-components.com/docs/getting-started/) library, which can be used in SSR applications.
  • Network accessline 62
    - [patterns.dev/vanilla/dynamic-import](https://patterns.dev/vanilla/dynamic-import)

javascript/factory-pattern/SKILL.md

  • Network accessline 102
    - [patterns.dev/vanilla/factory-pattern](https://patterns.dev/vanilla/factory-pattern)
  • Network accessline 106
    - [JavaScript Factory Functions with ES6+](https://medium.com/javascript-scene/javascript-factory-functions-with-es6-4d224591a8b1) - Eric Elliott

javascript/flyweight-pattern/SKILL.md

  • Network accessline 118
    In JavaScript, we can easily solve this problem through [prototypal inheritance](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain). Nowadays, hardware has GBs of RAM, which makes the flyweight patt
  • Network accessline 122
    - [patterns.dev/vanilla/flyweight-pattern](https://patterns.dev/vanilla/flyweight-pattern)
  • Network accessline 126
    - [Flyweight](https://refactoring.guru/design-patterns/flyweight) - Refactoring Guru
  • Network accessline 127
    - [Flyweight Design Pattern](https://howtodoinjava.com/design-patterns/structural/flyweight-design-pattern) - How To Do In Java

javascript/import-on-interaction/SKILL.md

  • Network accessline 52
    Loading these resources eagerly (i.e right away) can [block the main thread](https://web.dev/long-tasks-devtools/) if they are costly, pushing out how soon a user can interact with more critical parts of a page. This can impact interaction 
  • Network accessline 54
    - When the user clicks to interact with that component for the first time - Scrolls the component into view - or deferring load of that component until the browser is idle (via [requestIdleCallback](https://developer.mozilla.org/en-US/docs/
  • Network accessline 56
    - or deferring load of that component until the browser is idle (via [requestIdleCallback](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback)).
  • Network accessline 62
    - Lazy (On interaction) - load when the user clicks UI (e.g Show Chat) - Lazy (In viewport) - load when the user scrolls towards the component - [Prefetch](https://web.dev/link-prefetch/) - load prior to needed, but after critical resources
  • Network accessline 63
    - Lazy (In viewport) - load when the user scrolls towards the component - [Prefetch](https://web.dev/link-prefetch/) - load prior to needed, but after critical resources are loaded - [Preload](https://web.dev/preload-critical-assets/) - eag
  • Network accessline 64
    - [Prefetch](https://web.dev/link-prefetch/) - load prior to needed, but after critical resources are loaded
  • Network accessline 65
    - [Preload](https://web.dev/preload-critical-assets/) - eagerly, with a greater level of urgency
  • Network accessline 73
    You might be importing a third-party script and have less control over what it renders or when it loads code. One option for implementing load-on-interaction is straight-forward: use a [facade](https://github.com/patrickhulce/third-party-we
  • Network accessline 75
    When a user clicks on the "preview" (the facade), the code for the resource is loaded. This limits users needing to pay the experience cost for a feature if they're not going to use it. Similarly, facades can [preconnect](https://web.dev/us
  • Network accessline 79
    A good example of a "facade" is the [YouTube Lite Embed](https://github.com/paulirish/lite-youtube-embed) by Paul Irish. This provides a Custom Element which takes a YouTube Video ID and presents a minimal thumbnail and play button. Clickin
  • Network accessline 89
    Calibre app [improved performance of their Intercom-based live chat by 30%](https://calibreapp.com/blog/fast-live-chat) through usage of a similar facade approach. They implemented a "fake" fast loading live chat button using just CSS and H
  • Network accessline 91
    [Postmark](https://wildbit.com/blog/2020/09/30/getting-postmark-lighthouse-performance-score-to-100) noted that their Help chat widget was always eagerly loaded, even though it was only occasionally used by customers. The widget would pull 
  • Network accessline 95
    [Ne-digital](https://medium.com/ne-digital/how-to-reduce-next-js-bundle-size-68f7ac70c375) used a React library for animated scrolling back to the top of a page when a user clicks on a "scroll to top" button. Rather than eagerly loading the
  • Network accessline 110
    In JavaScript, [dynamic import()](https://v8.dev/features/dynamic-import) enables lazy-loading modules and returns a promise and can be quite powerful when applied correctly. Below is an example where dynamic import is used in a button even
  • Network accessline 143
    Let's imagine we have a Chat application which has a `<MessageList>`, `<MessageInput>` and an `<EmojiPicker>` component (powered by [emoji-mart](https://bundlephobia.com/result?p=emoji-mart@3.0.0), which is 98KB minified and gzipped). It ca
  • Network accessline 162
    Breaking the loading of this work up is relatively straight-forward with [code-splitting](https://web.dev/reduce-javascript-payloads-with-code-splitting/). The `React.lazy` method makes it easy to code-split a React application on a compone
  • Network accessline 250
    The import-on-interaction pattern should be possible with most frameworks and libraries that support dynamic component loading, including [Angular](https://johnpapa.net/angular-9-lazy-loading-components/).
  • Network accessline 276
    In the framework stack used by these Google teams, we can track clicks early because the first chunk of HTML includes a small event library ([JSAction](https://github.com/google/jsaction)) which tracks all clicks before the framework is boo
  • Network accessline 295
    For a walkthrough of the above example, see [Elevating the Web Platform with the JavaScript Community](https://www.youtube.com/watch?v=-xZHWK-vHbQ).
  • Network accessline 329
    - [patterns.dev/vanilla/import-on-interaction](https://patterns.dev/vanilla/import-on-interaction)

javascript/import-on-visibility/SKILL.md

  • Network accessline 20
    As we're not requesting all images instantly, we can reduce the initial loading time. We can do the same with components! In order to know whether components are currently in our viewport, we can use the [`IntersectionObserver` API](https:/
  • Network accessline 47
    - [patterns.dev/vanilla/import-on-visibility](https://patterns.dev/vanilla/import-on-visibility)

javascript/islands-architecture/SKILL.md

  • Network accessline 47
    The core principle for SSR is that HTML is rendered on the server and shipped with necessary JavaScript to rehydrate it on the client. Rehydration is the process of regenerating the state of UI components on the client-side after the server
  • Network accessline 49
    The term [Islands architecture](https://jasonformat.com/islands-architecture/) was popularized by Katie Sylor-Miller and Jason Miller to describe a paradigm that aims to reduce the volume of JavaScript shipped through "islands" of interacti
  • Network accessline 67
    The Island architecture borrows concepts from different sources and aims to combine them optimally. Template-based static site generators such as [Jekyll](https://jekyllrb.com/) and [Hugo](https://gohugo.io/) support the rendering of static
  • Network accessline 69
    Jason's post suggests the use of [`requestIdleCallback()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback) to implement a scheduling approach for hydrating components. Static isomorphic rendering and scheduling 
  • Network accessline 79
    1. **Marko**: [Marko](https://markojs.com/) is an open-source framework [developed](https://tech.ebayinc.com/engineering/the-future-of-marko/) and [maintained](https://tech.ebayinc.com/engineering/ebay-launches-marko-5/) by eBay to improve 
  • Network accessline 81
    2. **Astro**: [Astro](https://astro.build/) is a static site builder that can generate lightweight static HTML pages from UI components built in other frameworks such as React, Preact, Svelte, Vue, and others. Components that need client-si
  • Network accessline 83
    3. **Eleventy + Preact:** [Markus Oberlehner](https://markus.oberlehner.net/blog/building-partially-hydrated-progressively-enhanced-static-websites-with-isomorphic-preact-and-eleventy/#lazy-hydration) demonstrates the use of Eleventy, a sta
  • Network accessline 165
    1. The only options available to developers to implement Islands are to use one of the few frameworks available or develop the architecture yourself. Migrating existing sites to Astro or Marko would require additional efforts. 2. Besides Ja
  • Network accessline 166
    2. Besides Jason's initial post, there is little discussion available on the idea. 3. [New frameworks](https://github.com/bensmithett/tropical-utils/tree/main/packages/tropical-islands) claim to support the Islands architecture making it di
  • Network accessline 167
    3. [New frameworks](https://github.com/bensmithett/tropical-utils/tree/main/packages/tropical-islands) claim to support the Islands architecture making it difficult to filter the ones which will work for you.
  • Network accessline 174
    - [patterns.dev/vanilla/islands-architecture](https://patterns.dev/vanilla/islands-architecture)
  • Network accessline 178
    - [Islands Architecture](https://jasonformat.com/islands-architecture/)
  • Network accessline 179
    - [Is 0KB of JavaScript in your future](https://dev.to/this-is-learning/is-0kb-of-javascript-in-your-future-48og)
  • Network accessline 180
    - [Modernizing Etsy's codebase with React](https://changelog.com/jsparty/105)

javascript/js-performance-patterns/SKILL.md

  • Network accessline 120
    For complex cases, use `requestAnimationFrame` to defer writes to the next frame, or use a library like [fastdom](https://github.com/wilsonpage/fastdom).
  • Network accessline 424
    Patterns from [patterns.dev](https://www.patterns.dev/) — JavaScript performance guidance for the broader web engineering community.

javascript/loading-sequence/SKILL.md

  • Network accessline 27
    In every successful web page load, some critical components and resources become available at just the right time to give you a smooth loading experience. This ensures users perceive the performance of the application to be excellent. This 
  • Network accessline 45
    Key [metrics](https://web.dev/metrics/) such as [First Content Paint](https://web.dev/fcp/), [Largest Contentful Paint](https://web.dev/lcp/), [First Input Delay](https://web.dev/fid/), etc used to measure performance are directly dependent
  • Network accessline 57
    [Web Vitals](https://web.dev/vitals) optimization requires not only a good understanding of what each metrics stands for but also the order in which they occur and how they relate to different critical resources. FCP occurs before LCP which
  • Network accessline 84
    An example of this is the [preload bug](https://bugs.chromium.org/p/chromium/issues/detail?id=788757) on the chromium platform. The [Preload](https://medium.com/reloading/preload-prefetch-and-priorities-in-chrome-776165961bbf) (`<link rel=p
  • Network accessline 88
    The protocol itself does not provide many options or knobs for adjusting the order and priority of resources. Even if better prioritization primitives were to be made available, there are underlying [problems with HTTP2 prioritization](http
  • Network accessline 118
    [Critical CSS](https://web.dev/extract-critical-css/) refers to the minimum CSS required for FCP. It is better to inline such CSS within HTML rather than import it from another CSS file. Only the CSS required for the route should be downloa
  • Network accessline 130
    Like critical CSS, the CSS for [critical fonts](https://web.dev/font-best-practices/) should also be inlined. If inlining is not possible the script should be loaded with a [preconnect](https://web.dev/uses-rel-preconnect/) specified. Delay
  • Network accessline 132
    Inlining fonts can bloat the HTML significantly and delay initiating other critical resource fetches. [Font fallback](https://css-tricks.com/css-basics-fallback-font-stacks-robust-web-typography/) may be used to unblock FCP and make the tex
  • Network accessline 156
    - CSS and Fonts are loaded with the highest priority. This should help us prioritize critical CSS and fonts. - Scripts get different priorities based on where they are in the document and whether they are async, defer, or blocking. Blocking
  • Network accessline 157
    - Scripts get different priorities based on where they are in the document and whether they are async, defer, or blocking. Blocking scripts requested before the first image (or an image early in the document) are given higher priority over 
  • Network accessline 164
    With that background, we can now propose a loading sequence that should optimize the loading of both 1P and 3P resources. The proposed sequence uses [Next.js](https://nextjs.org/) Server Side Rendering (SSR) as a reference for optimization.
  • Network accessline 256
    - [patterns.dev/vanilla/loading-sequence](https://patterns.dev/vanilla/loading-sequence)

javascript/mediator-pattern/SKILL.md

  • Network accessline 77
    [Express.js](https://expressjs.com) is a popular web application server framework. We can add callbacks to certain routes that the user can access.
  • Network accessline 118
    - [patterns.dev/vanilla/mediator-pattern](https://patterns.dev/vanilla/mediator-pattern)
  • Network accessline 122
    - [Docs - Express](https://expressjs.com)
  • Network accessline 123
    - [Mediator Pattern - OO Design](https://www.oodesign.com/mediator-pattern.html)

javascript/mixin-pattern/SKILL.md

  • Network accessline 129
    An example of a mixin in the real world is visible on the `Window` interface in a browser environment. The `Window` object implements many of its properties from the [`WindowOrWorkerGlobalScope`](https://developer.mozilla.org/en-US/docs/Web
  • Network accessline 135
    Mixins were often used to add functionality to React components before the introduction of ES6 classes. The React team [discourages the use of mixins](https://reactjs.org/blog/2016/07/13/mixins-considered-harmful.html) as it easily adds unn
  • Network accessline 141
    - [patterns.dev/vanilla/mixin-pattern](https://patterns.dev/vanilla/mixin-pattern)
  • Network accessline 145
    - [Functional Mixins](https://medium.com/javascript-scene/functional-mixins-composing-software-ffb66d5e731c) - Eric Elliott
  • Network accessline 146
    - [Mixins](https://javascript.info/mixins) - JavaScript Info

javascript/module-pattern/SKILL.md

  • Network accessline 236
    With the module pattern, we can encapsulate parts of our code that should not be publicly exposed. This prevents accidental name collision and global scope pollution, which makes working with multiple dependencies and namespaces less risky.
  • Network accessline 240
    - [patterns.dev/vanilla/module-pattern](https://patterns.dev/vanilla/module-pattern)

javascript/observer-pattern/SKILL.md

  • Network accessline 202
    - [patterns.dev/vanilla/observer-pattern](https://patterns.dev/vanilla/observer-pattern)
  • Network accessline 206
    - [RxJS](https://rxjs-dev.firebaseapp.com)
  • Network accessline 207
    - [JavaScript Design Patterns: The Observer Pattern](https://www.sitepoint.com/javascript-design-patterns-observer-pattern)

javascript/prefetch/SKILL.md

  • Network accessline 18
    Prefetch (`<link rel="prefetch">`) is a browser optimization which allows us to fetch resources that may be needed for subsequent routes or pages before they are needed. Prefetching can be achieved in a few ways. It can be done declarativel
  • Network accessline 50
    Components or resources that we know are likely to be used at some point in the application can be **prefetched**. We can let Webpack know that certain bundles need to be prefetched, by adding a [magic comment](https://webpack.js.org/api/mo
  • Network accessline 81
    - [patterns.dev/vanilla/prefetch](https://patterns.dev/vanilla/prefetch)
  • Network accessline 85
    - [Preload, prefetch and priorities in Chrome](https://medium.com/reloading/preload-prefetch-and-priorities-in-chrome-776165961bbf)
  • Network accessline 86
    - [Faster navigations with predictive prefetching](https://web.dev/predictive-prefetching/)
  • Network accessline 87
    - [Prefetching heuristics](https://blog.mgechev.com/2021/02/07/prefetching-strategies-heuristics-faster-web-apps/)
  • Network accessline 88
    - [What not to prefetch](https://addyosmani.com/blog/what-not-to-prefetch-prerender/)

javascript/preload/SKILL.md

  • Network accessline 26
    [Preload](https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content) (`<link rel="preload">`) is a [browser optimization](https://web.dev/uses-rel-preload/) that allows critical resources (that may be discovered late) to be reque
  • Network accessline 60
    When optimizing for metrics like [Time To Interactive](https://web.dev/tti) or [First Input Delay](https://web.dev/fid), preload can be useful to load JavaScript bundles (or chunks) that are necessary for interactivity. Keep in mind that gr
  • Network accessline 74
    > Webpack 4.6.0+ allows preloading of resources by adding `/* webpackPreload: true */` to the import. In order to make preloading work in older versions of webpack, you'll need to add the [`preload-webpack-plugin`](https://github.com/Google
  • Network accessline 146
    Thanks to some [fixes](https://twitter.com/patmeenan/status/1436374668450177026) to preload's [queue-jumping](https://docs.google.com/document/d/1ZEi-XXhpajrnq8oqs5SiW-CXR3jMc20jWIzN5QRy1QA/edit?usp=sharing) behavior in Chrome 95+, the feat
  • Network accessline 156
    Again, use preload sparingly and measure its impact in production. If the preload for your image is earlier in the document than it is, this can help browsers discover it (and order relative to other resources). When used incorrectly, prelo
  • Network accessline 158
    You may also find `<link rel="preload">` to be helpful for cases where you need to fetch scripts [without executing](https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content#scripting_and_preloads) them.
  • Network accessline 162
    - [Preload key scripts required for interactivity](https://web.dev/uses-rel-preload/)
  • Network accessline 163
    - [Preload your Largest Contentful Paint image](https://web.dev/preload-responsive-images/)
  • Network accessline 164
    - [Load fonts while preventing layout shifts](https://web.dev/preload-optional-fonts/)
  • Network accessline 168
    - [patterns.dev/vanilla/preload](https://patterns.dev/vanilla/preload)

javascript/prototype-pattern/SKILL.md

  • Network accessline 117
    - [patterns.dev/vanilla/prototype-pattern](https://patterns.dev/vanilla/prototype-pattern)
  • Network accessline 121
    - [Object.create - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create)
  • Network accessline 122
    - [Prototype - ECMA](https://www.ecma-international.org/ecma-262/5.1/#sec-4.3.5)

javascript/provider-pattern/SKILL.md

  • Network accessline 288
    Some libraries provide built-in providers, which values we can use in the consuming components. A good example of this, is [styled-components](https://styled-components.com/docs/advanced).
  • Network accessline 363
    - [patterns.dev/vanilla/provider-pattern](https://patterns.dev/vanilla/provider-pattern)
  • Network accessline 367
    - [Context - React](https://reactjs.org/docs/context.html)
  • Network accessline 368
    - [How To Use React Context Effectively - Kent C. Dodds](https://kentcdodds.com/blog/how-to-use-react-context-effectively)

javascript/proxy-pattern/SKILL.md

  • Network accessline 64
    The second argument of `Proxy` is an object that represents the _handler_. In the handler object, we can define specific behavior based on the type of interaction. Although there are [many methods](https://developer.mozilla.org/en-US/docs/W
  • Network accessline 152
    - [patterns.dev/vanilla/proxy-pattern](https://patterns.dev/vanilla/proxy-pattern)
  • Network accessline 156
    - [Proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) - MDN
  • Network accessline 157
    - [JavaScript Proxy](https://davidwalsh.name/javascript-proxy) - David Walsh
  • Network accessline 158
    - [Awesome ES2015 Proxy](https://github.com/mikaelbr/awesome-es2015-proxy) - GitHub @mikaelbr
  • Network accessline 159
    - [Thoughts on ES6 Proxies Performance](http://thecodebarbarian.com/thoughts-on-es6-proxies-performance) - Valeri Karpov

javascript/prpl/SKILL.md

  • Network accessline 60
    Although pushing resources reduces the amount of time to receive additional resources, server push is not HTTP cache aware! The pushed resources won't be available to us the next time we visit the website, and will have to be requested agai
  • Network accessline 86
    - [patterns.dev/vanilla/prpl](https://patterns.dev/vanilla/prpl)

javascript/route-based/SKILL.md

  • Network accessline 41
    - [patterns.dev/vanilla/route-based](https://patterns.dev/vanilla/route-based)

javascript/singleton-pattern/SKILL.md

  • Network accessline 242
    - [patterns.dev/vanilla/singleton-pattern](https://patterns.dev/vanilla/singleton-pattern)
  • Network accessline 246
    - [Do React Hooks replace Redux](https://medium.com/javascript-scene/do-react-hooks-replace-redux-210bab340672) - Eric Elliott
  • Network accessline 247
    - [JavaScript Design Patterns: The Singleton](https://www.sitepoint.com/javascript-design-patterns-singleton/) - Samier Saeed
  • Network accessline 248
    - [Singleton](https://refactoring.guru/design-patterns/singleton) - Refactoring Guru

javascript/static-import/SKILL.md

  • Network accessline 50
    - [patterns.dev/vanilla/static-import](https://patterns.dev/vanilla/static-import)

javascript/third-party/SKILL.md

  • Network accessline 47
    - A/B testing and personalization scripts - Utility libraries that provide ready-to-use helper functions such as those used for data visualization or animations. - [reCAPTCHA](https://www.google.com/recaptcha/about/) or CAPTCHA for bot dete
  • Network accessline 49
    - [reCAPTCHA](https://www.google.com/recaptcha/about/) or CAPTCHA for bot detection.
  • Network accessline 51
    You can use third-parties to integrate other features that add value to your content or to reduce some drudgery involved in building a site from scratch. As per the Web Almanac report for 2021, more than [94% of the pages](https://almanac.h
  • Network accessline 56
    - They make heavy usage of JavaScript (impacting download and execution time) or are bulky in size because of unoptimized images/videos. - Individual site owners cannot influence the implementation, and their behavior can be unpredictable. 
  • Network accessline 58
    - They can block the rendering of other critical resources on the page and affect [Core Web Vitals](https://web.dev/vitals/) (CWV).
  • Network accessline 66
    - The following Lighthouse audits help identify slow third-party scripts that affect CWV:   - [Reduce the impact of third-party code](https://web.dev/third-party-summary/) for scripts that block the main thread.
  • Network accessline 67
    - [Reduce the impact of third-party code](https://web.dev/third-party-summary/) for scripts that block the main thread.
  • Network accessline 68
    - [Reduce JavaScript execution time](https://web.dev/bootup-time/) for scripts that take long to execute
  • Network accessline 69
    - [Avoid enormous network payloads](https://web.dev/total-byte-weight/) for large scripts
  • Network accessline 71
    - Use the WebPageTest (WPT) waterfall chart to identify [third-party blocking scripts](https://nooshu.com/blog/2019/10/02/how-to-read-a-wpt-waterfall-chart/#third-party-blocking-javascript) or WPT side-by-side comparison to [measure the imp
  • Network accessline 73
    - Sites like [Bundlephobia](https://bundlephobia.com/) help to assess the cost of adding available npm packages to your bundles. You can also find size and dependencies included in any package using [npm package search](https://www.npmjs.co
  • Network accessline 91
    JavaScript download and execution is synchronous by default and can block the HTML parser and DOM construction on the main thread. Use of [async](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async) or [defer](https:
  • Network accessline 97
    <script src="https://example.com/deferthis.js" defer></script>
  • Network accessline 98
    <script src="https://example.com/asyncthis.js" async></script>
  • Network accessline 101
    One caveat worth mentioning here is that async and defer lower the browser assigned priority of the resources causing it to load significantly later. A new feature for [priority hints](https://web.dev/priority-hints/) can help to work aroun
  • Network accessline 109
    Including a [dns-prefetch](https://developer.mozilla.org/en-US/docs/Web/Performance/dns-prefetch) resource hint corresponding to a domain will perform the DNS lookup early, thus reducing the latency associated with dns lookups. You can pair
  • Network accessline 112
    <head>   <link rel="preconnect" href="http://example.com" />
  • Network accessline 113
    <link rel="preconnect" href="http://example.com" />
  • Network accessline 114
    <link rel="dns-prefetch" href="http://example.com" />
  • Network accessline 118
    Benefits of using resource hints are evident in this case study where Andy Davies discusses how using [preconnect helped reduce the loading time](https://andydavies.me/blog/2019/03/22/improving-perceived-performance-with-a-link-rel-equals-p
  • Network accessline 128
    1. The [loading](https://web.dev/iframe-lazy-loading/) attribute can be used with images and iframes commonly used to load third-party embeds like those for YouTube or Google Maps.
  • Network accessline 129
    2. A custom implementation using the [IntersectionObserver API](https://developers.google.com/web/updates/2016/04/intersectionobserver) allows you to detect when the observed element enters or exits the browser's viewport.
  • Network accessline 130
    3. [Lazy-sizes](https://github.com/aFarkas/lazysizes) - a popular JavaScript library that implements lazy-loading for you.
  • Network accessline 132
    A variation of lazy-loading embeds uses a static or dynamic facade displayed to users on page loads. Instead of the map embed, you can use a static image of the actual embed. Solutions include the [Map Static API](https://developers.google.
  • Network accessline 145
    Self-hosting a copy of the scripts on the same origin offers you more control over the loading and caching process used for the scripts. Self-hosting reduces the time required for DNS lookup and allows you to improve the caching strategy fo
  • Network accessline 147
    With self-hosted copies of third-party scripts, you have to ensure that you update your copy regularly based on changes to the original. Without updates, the script may become outdated, missing important fixes or changes corresponding to de
  • Network accessline 167
    Advertising or analytics teams may worry about the impact of deferring scripts on the visibility and advertising revenue of the app. The [Telegraph case study](https://medium.com/the-telegraph-engineering/improving-third-party-web-performan
  • Network accessline 173
    1. Load it only on a few pages with form inputs from the user that may get spammed by a bot. 2. [Lazy load the script](https://dev.to/uf4no/improve-page-performance-lazy-loading-recaptcha-442o) when the user interacts with form elements, fo
  • Network accessline 174
    2. [Lazy load the script](https://dev.to/uf4no/improve-page-performance-lazy-loading-recaptcha-442o) when the user interacts with form elements, for example, on form focus.
  • Network accessline 179
    Large sites often provide [Google Tag Manager](https://marketingplatform.google.com/about/resources/tag-manager-product-overview/) access to marketing teams or agencies. This allows them to add new marketing tags to all pages on the site fo
  • Network accessline 187
    Sites conduct [A/B tests](https://www.optimizely.com/optimization-glossary/ab-testing/) to check which version of the webpage performs better. A/B tests can significantly affect the performance of pages on which they are run, with each test
  • Network accessline 189
    [Site personalization](https://www.dynamicyield.com/lesson/web-personalization/) is a related concept which involves running scripts to provide a tailored experience for different users based on known data. These scripts are again heavy and
  • Network accessline 191
    To optimize third-party A/B testing scripts, you can limit the number of users who receive the script. Google's Optimize allows the configuration of [rules for targeting users](https://support.google.com/optimize/answer/6283420#zippy=%2Cin-
  • Network accessline 195
    These embeds are heavy, and developers must explore lazy-loading or click-to-load patterns to load the embeds to optimize them. Use of solutions like [lite-youtube-embed](https://github.com/paulirish/lite-youtube-embed) is encouraged while 
  • Network accessline 199
    Some social media embeds provide an option to lazy-load their scripts (e.g., [data-lazy in Facebook](https://developers.facebook.com/docs/plugins/embedded-posts/) embeds). You can explore this to improve performance. Another alternative is 
  • Network accessline 205
    [Partytown created by Builder.io](https://github.com/BuilderIO/partytown) is an experimental library that helps run resource-intensive scripts on a [web worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) instead of th
  • Network accessline 261
    Next.js 11 was released in mid-2021 with components based on the [Conformance](https://web.dev/conformance/) methodology introduced by Google's Aurora team. The [Next.js Script component](https://nextjs.org/docs/basic-features/script) uses 
  • Network accessline 276
    <>       <Head>         <script async src="https://example.com/samplescript.js" />
  • Network accessline 277
    <Head>         <script async src="https://example.com/samplescript.js" />       </Head>
  • Network accessline 278
    <script async src="https://example.com/samplescript.js" />
  • Network accessline 291
    return (    <>      <Script src="https://example.com/samplescript.js" />
  • Network accessline 292
    <>      <Script src="https://example.com/samplescript.js" />    </>
  • Network accessline 293
    <Script src="https://example.com/samplescript.js" />
  • Network accessline 308
    <>       <Script         src="https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserverEntry%2CIntersectionObserver"
  • Network accessline 309
    <Script         src="https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserverEntry%2CIntersectionObserver"         strategy="beforeInteractive"
  • Network accessline 310
    src="https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserverEntry%2CIntersectionObserver"
  • Network accessline 327
    <>       <Script         src="https://connect.facebook.net/en_US/sdk.js"
  • Network accessline 328
    <Script         src="https://connect.facebook.net/en_US/sdk.js"         strategy="lazyOnload"
  • Network accessline 329
    src="https://connect.facebook.net/en_US/sdk.js"
  • Network accessline 383
    <>       <Script         src="https://www.google-analytics.com/analytics.js"
  • Network accessline 384
    <Script         src="https://www.google-analytics.com/analytics.js"         id="analytics"
  • Network accessline 385
    src="https://www.google-analytics.com/analytics.js"
  • Network accessline 413
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefo
  • Network accessline 414
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);            })(window,document,'script','dataLayer', '${GTM_ID}');
  • Network accessline 415
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  • Network accessline 438
    - [patterns.dev/vanilla/third-party](https://patterns.dev/vanilla/third-party)

javascript/tree-shaking/SKILL.md

  • Network accessline 76
    The Webpack documentation gives a [clear explanation on tree-shaking](https://webpack.js.org/guides/tree-shaking/#clarifying-tree-shaking-and-sideeffects) and how to avoid breaking it.
  • Network accessline 80
    - [patterns.dev/vanilla/tree-shaking](https://patterns.dev/vanilla/tree-shaking)

javascript/view-transitions/SKILL.md

  • Network accessline 44
    The [View Transitions API](https://developer.chrome.com/docs/web-platform/view-transitions/) offers a simple way to transition any visual DOM change from one state to the next. This might include small changes such as toggling some content,
  • Network accessline 109
    That's the basics of the API. [Jake Archibald's excellent View Transitions article](https://developer.chrome.com/docs/web-platform/view-transitions) covers the details well. For now, let's see how we might transition full page navigations.
  • Network accessline 172
    **Note:** The [Next.js App Router](https://beta.nextjs.org/docs/app-directory-roadmap) is in beta at the time of writing and best-practices around it and the pages directory may be subject to change.
  • Network accessline 204
    View the [Next.js demonstration](https://frolicking-dusk-29be0a.netlify.app/), the [live Next.js demo](https://photography-view-transitions-nextjs.vercel.app/) and its [source](https://github.com/domchristie/photography-view-transitions-nex
  • Network accessline 221
    To implement this, we'll need to hook into routing events, which will depend on the framework or library you're using. In particular, we'll need to be notified when the user navigates. With Next.js, we can use the [`routeChangeStart` router
  • Network accessline 227
    [Turbo](https://turbo.hotwired.dev/), part of the [Hotwire](https://hotwired.dev/) suite of libraries (not to be confused with [Vercel's Turbo](https://turbo.build/)), offers a rendering approach that progressively enhances multi-page appli
  • Network accessline 229
    [Turn](https://github.com/domchristie/turn) is a library for animating page navigations using Turbo. It supports both animation approaches (although currently view transitions are experimental). Turn adds `turn-before-exit`, `turn-exit`, an
  • Network accessline 284
    - [patterns.dev/vanilla/view-transitions](https://patterns.dev/vanilla/view-transitions)

javascript/virtual-lists/SKILL.md

  • Network accessline 28
    If you use React and need to **display large lists of data efficiently**, you may be familiar with [react-virtualized](https://bvaughn.github.io/react-virtualized/). It's a windowing library by [Brian Vaughn](https://twitter.com/brian_d_vau
  • Network accessline 64
    [react-window](https://react-window.now.sh/) is a rewrite of react-virtualized by the same author aiming to be **smaller**, faster and more [tree-shakeable](https://developers.google.com/web/fundamentals/performance/optimizing-javascript/tr
  • Network accessline 72
    Lists render a **windowed list (row) of elements** meaning that only the visible rows are displayed to users (e.g [FixedSizeList](https://react-window.now.sh/#/examples/list/fixed-size), [VariableSizeList](https://react-window.now.sh/#/exam
  • Network accessline 149
    You can try out `FixedSizeList` on [CodeSandbox](https://codesandbox.io/s/github/bvaughn/react-window/tree/master/website/sandboxes/fixed-size-list-vertical).
  • Network accessline 153
    Grid renders **tabular data** with virtualization along the vertical and horizontal axes (e.g [FixedSizeGrid](https://react-window.now.sh/#/examples/grid/fixed-size), [VariableSizeGrid](https://react-window.now.sh/#/examples/grid/variable-s
  • Network accessline 201
    You can also try out `FixedSizeGrid` on [CodeSandbox](https://codesandbox.io/s/github/bvaughn/react-window/tree/master/website/sandboxes/fixed-size-grid).
  • Network accessline 205
    [Scott Taylor](https://github.com/staylor) implemented an open-source [Pitchfork music reviews scraper](http://pitchfork.highforthis.com/) [(src)](https://github.com/staylor/pitchfork-scraper) using `react-window` and `FixedSizeGrid`.
  • Network accessline 207
    Pitchfork scraper uses [react-window-infinite-loader](https://github.com/bvaughn/react-window-infinite-loader) ([demo](https://codesandbox.io/s/5wqo7z2np4)) which helps break large data sets down into chunks that can be loaded as they are s
  • Network accessline 244
    You might find the [commit](https://github.com/staylor/pitchfork-scraper/commit/d9bff69e332ad9de8351c67f4848fc7968209eff) porting the app over from `react-virtualized` useful.
  • Network accessline 273
    For even more complex needs, a [The Movie Database](https://www.themoviedb.org/) [demo app](https://tmdb-viewer.surge.sh/) used react-virtualized and Infinite Loader under the hood. [Porting](https://github.com/addyosmani/tmdb-viewer/blob/m
  • Network accessline 297
    react-window does not yet have the complete API surface of react-virtualized, so do check the [comparison docs](https://github.com/bvaughn/react-window#how-is-react-window-different-from-react-virtualized) if considering it. What's missing?
  • Network accessline 299
    - [WindowScroller](https://github.com/bvaughn/react-virtualized/blob/master/docs/WindowScroller.md) - This is a `react-virtualized` component that enables Lists to be scrolled based on the window's scroll positions. There are currently [no 
  • Network accessline 300
    - [AutoSizer](https://github.com/bvaughn/react-virtualized/blob/master/docs/AutoSizer.md) - HOC that grows to fit all of the available space, automatically adjusting the width and height of a single child. Brian implemented this as a [stand
  • Network accessline 301
    - [CellMeasurer](https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md) - HOC automatically measuring a cell's content by rendering it in a way that is not visible to the user. Follow [here](https://github.com/bvaugh
  • Network accessline 307
    Some modern browsers now support [CSS content-visibility](https://web.dev/content-visibility/). `content-visibility:auto` allows you to skip rendering & painting offscreen content until needed. If you have a long HTML document with costly r
  • Network accessline 313
    - [patterns.dev/vanilla/virtual-lists](https://patterns.dev/vanilla/virtual-lists)
  • Network accessline 317
    - [Rendering performant lists with react-window](https://alligator.io/react/lists-with-react-window/)
  • Network accessline 318
    - [Creating More Efficient React Views with Windowing](https://www.youtube.com/watch?v=t4tuhg7b50I)
  • Network accessline 319
    - [Rendering lists with react-virtualized](https://css-tricks.com/rendering-lists-using-react-virtualized/)
  • Network accessline 320
    - [Rendering large lists with react-virtualized](https://blog.logrocket.com/rendering-large-lists-with-react-virtualized-82741907a6b3)

javascript/vite-bundle-optimization/SKILL.md

  • Access to secretsline 245
    [Credential-related source omitted]
  • Network accessline 412
    # .env.production VITE_FEATURE_NEW_DASHBOARD=true VITE_API_URL=https://api.example.com
  • Network accessline 414
    VITE_API_URL=https://api.example.com
  • Network accessline 477
    proxy: {       '/api': {         target: 'http://localhost:3001',
  • Network accessline 478
    '/api': {         target: 'http://localhost:3001',         changeOrigin: true,
  • Network accessline 479
    target: 'http://localhost:3001',
  • Network accessline 481
    },       '/auth': {         target: 'http://localhost:3001',
  • Network accessline 482
    '/auth': {         target: 'http://localhost:3001',         changeOrigin: true,
  • Network accessline 483
    target: 'http://localhost:3001',
  • Network accessline 496
    In your app code, use relative paths (`fetch('/api/users')`) — they hit Vite's dev server which proxies to your backend. In production, configure your reverse proxy (Nginx, Caddy) to do the same routing.
  • Network accessline 612
    Patterns from [patterns.dev](https://www.patterns.dev/) — Vite-specific optimization guidance for the broader React web engineering community.

react/ai-ui-patterns/SKILL.md

  • Access to secretsline 72
    [Credential-related source omitted]
  • Access to secretsline 85
    [Credential-related source omitted]
  • Access to secretsline 112
    [Credential-related source omitted]
  • Network accessline 133
    app.listen(6000, () => console.log('API server listening on http://localhost:6000'));
  • Network accessline 136
    During development, you can configure the Vite dev server to proxy `/api` calls to this backend (e.g. in `vite.config.js`, set `server.proxy['/api'] = 'http://localhost:6000'`). The key is that the React app calls a **relative `/api/chat` e
  • Network accessline 172
    const res = await fetch('/api/chat', { method: 'POST', body: JSON.stringify({ messages }) });
  • Network accessline 356
    - [patterns.dev/react/ai-ui-patterns](https://patterns.dev/react/ai-ui-patterns)
  • Network accessline 360
    - [Vercel AI SDK Documentation](https://ai-sdk.dev/)
  • Network accessline 361
    - [Vercel Academy: Basic Chatbot](https://vercel.com/academy/ai-sdk/basic-chatbot)
  • Network accessline 362
    - [Vercel Academy: AI Elements](https://vercel.com/academy/ai-sdk/ai-elements)
  • Network accessline 363
    - [Building Chatbot in Next.js using Vercel AI SDK](https://blog.saeloun.com/2023/07/13/building-chatbot-in-next-js-using-vercel-ai-sdk/)
  • Network accessline 364
    - [Build a Docs-Aware Chatbot with React, Vite, Node and OpenAI](https://dev.to/cloudinary/build-a-docs-aware-chatbot-with-react-vite-node-and-openai-plus-fun-dalle-avatars-1chi)

react/client-side-rendering/SKILL.md

  • Network accessline 113
    - **Code Splitting**: To avoid a large bundle of JavaScript code, you could start splitting your bundles. Code-Splitting is supported by bundlers like [Webpack](https://webpack.js.org/guides/code-splitting/) where it can be used to create m
  • Network accessline 121
    - [patterns.dev/react/client-side-rendering](https://patterns.dev/react/client-side-rendering)

react/compound-pattern/SKILL.md

  • Network accessline 58
    Using the Compound component pattern with React's [Context API](https://reactjs.org/docs/context.html) is perfect for this example!
  • Network accessline 208
    The compound pattern is great when you're building a component library. You'll often see this pattern when using UI libraries like [Semantic UI](https://react.semantic-ui.com/modules/dropdown/#types-dropdown).
  • Network accessline 278
    - [patterns.dev/react/compound-pattern](https://patterns.dev/react/compound-pattern)
  • Network accessline 282
    - [Render Props - React](https://reactjs.org/docs/render-props.htm)
  • Network accessline 283
    - [React Hooks: Compound Components - Kent C. Dodds](https://kentcdodds.com/blog/compound-components-with-react-hooks)

react/hoc-pattern/SKILL.md

  • Network accessline 101
    export default withLoader(   DogImages,   "https://dog.ceo/api/breed/labrador/images/random/6"
  • Network accessline 102
    DogImages,   "https://dog.ceo/api/breed/labrador/images/random/6" );
  • Network accessline 103
    "https://dog.ceo/api/breed/labrador/images/random/6"
  • Network accessline 119
    > A well-known library used for composing HOCs is [recompose](https://github.com/acdlite/recompose). Since HOCs can largely be replaced by React Hooks, the recompose library is no longer maintained.
  • Network accessline 133
    _"In most cases, Hooks will be sufficient and can help reduce nesting in your tree."_ - [React Docs](https://reactjs.org/docs/hooks-faq.html#do-hooks-replace-render-props-and-higher-order-components)
  • Network accessline 164
    Some libraries that relied on the HOC pattern added Hooks support after the release. A good example of this is [Apollo Client](https://www.apollographql.com/docs/react).
  • Network accessline 219
    - [patterns.dev/react/hoc-pattern](https://patterns.dev/react/hoc-pattern)
  • Network accessline 223
    - [Higher-Order Components - React](https://reactjs.org/docs/higher-order-components.html)

react/hooks-pattern/SKILL.md

  • Network accessline 27
    React 16.8 introduced a new feature called [**Hooks**](https://react.dev/reference/react/hooks). Hooks make it possible to use React state and lifecycle methods, without having to use an ES2015 class component.
  • Network accessline 256
    You may have noticed that all hooks start with `use`. It's important to start your hooks with `use` in order for React to check if it violates the [Rules of Hooks](https://react.dev/reference/rules/rules-of-hooks).
  • Network accessline 294
    - [React Use](https://github.com/streamich/react-use)
  • Network accessline 295
    - [useHooks](https://usehooks.com/)
  • Network accessline 296
    - [Collection of React Hooks](https://nikgraf.github.io/react-hooks/)
  • Network accessline 439
    - [patterns.dev/react/hooks-pattern](https://patterns.dev/react/hooks-pattern)

react/incremental-static-rendering/SKILL.md

  • Network accessline 92
    To re-render an existing page, a suitable timeout is defined for the page. This will ensure that the page is revalidated whenever the defined timeout period has elapsed. The user will continue to see the previous version of the page, till t
  • Network accessline 134
    - [patterns.dev/react/incremental-static-rendering](https://patterns.dev/react/incremental-static-rendering)

react/presentational-container-pattern/SKILL.md

  • Network accessline 77
    useEffect(() => {     fetch("https://dog.ceo/api/breed/labrador/images/random/6")
  • Network accessline 78
    fetch("https://dog.ceo/api/breed/labrador/images/random/6")
  • Network accessline 113
    - [patterns.dev/react/presentational-container-pattern](https://patterns.dev/react/presentational-container-pattern)
  • Network accessline 117
    - [Presentational and Container Components - Dan Abramov](https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0)

react/progressive-hydration/SKILL.md

  • Network accessline 74
    - [Server Components](https://github.com/reactjs/rfcs/blob/bf51f8755ddb38d92e23ad415fc4e3c02b95b331/text/0000-server-components.md). This will allow you to refetch components from the server and render them on the client as they stream in i
  • Network accessline 131
    - [patterns.dev/react/progressive-hydration](https://patterns.dev/react/progressive-hydration)

react/react-2026/SKILL.md

  • Network accessline 330
    - [patterns.dev/react/react-2026](https://patterns.dev/react/react-2026)

react/react-composition-2026/SKILL.md

  • Network accessline 508
    Patterns from [patterns.dev](https://www.patterns.dev/) — composition guidance for the broader React community.

react/react-data-fetching/SKILL.md

  • Network accessline 147
    useEffect(() => {     setLoading(true)     fetch(`/api/users/${userId}`)
  • Network accessline 148
    setLoading(true)     fetch(`/api/users/${userId}`)       .then(r => r.json())
  • Network accessline 149
    fetch(`/api/users/${userId}`)
  • Network accessline 166
    const { data: user, isLoading } = useQuery({     queryKey: ['user', userId],     queryFn: () => fetch(`/api/users/${userId}`).then(r => r.json()),
  • Network accessline 167
    queryKey: ['user', userId],     queryFn: () => fetch(`/api/users/${userId}`).then(r => r.json()),   })
  • Network accessline 168
    queryFn: () => fetch(`/api/users/${userId}`).then(r => r.json()),
  • Network accessline 373
    const { mutate: toggleLike } = useMutation({     mutationFn: () => fetch(`/api/posts/${postId}/like`, { method: 'POST' }),
  • Network accessline 374
    mutationFn: () => fetch(`/api/posts/${postId}/like`, { method: 'POST' }),
  • Network accessline 555
    Patterns from [patterns.dev](https://www.patterns.dev/) — framework-agnostic React data fetching guidance for the broader web engineering community.

react/react-render-optimization/SKILL.md

  • Network accessline 971
    Patterns from [patterns.dev](https://www.patterns.dev/) — framework-agnostic React performance guidance for the broader web engineering community.

react/react-selective-hydration/SKILL.md

  • Network accessline 65
    - [patterns.dev/react/react-selective-hydration](https://patterns.dev/react/react-selective-hydration)
  • Network accessline 69
    - [New Suspense SSR Architecture in React 18](https://github.com/reactwg/react-18/discussions/37)

react/react-server-components/SKILL.md

  • Network accessline 26
    React's [Server Components](https://react.dev/reference/rsc/server-components) enable **modern UX with a server-driven mental model**. This is quite different from Server-side Rendering (SSR) of components and results in significantly small
  • Network accessline 57
    - The [React Server Components reference](https://react.dev/reference/rsc/server-components) is the best current overview.
  • Network accessline 58
    - The [RFC](https://github.com/reactjs/rfcs/blob/bf51f8755ddb38d92e23ad415fc4e3c02b95b331/text/0188-server-components.md) is still useful for deeper implementation context.
  • Network accessline 59
    - [Next.js App Router documentation](https://nextjs.org/docs/app) for the modern approach to Server Components
  • Network accessline 60
    - [Shopify Hydrogen and Server Components](https://shopify.dev/custom-storefronts/hydrogen/framework/react-server-components)
  • Network accessline 173
    - [patterns.dev/react/react-server-components](https://patterns.dev/react/react-server-components)
  • Network accessline 177
    - [React Server Components reference](https://react.dev/reference/rsc/server-components)
  • Network accessline 178
    - [Server Functions reference](https://react.dev/reference/rsc/server-functions)
  • Network accessline 179
    - [RFC](https://github.com/reactjs/rfcs/blob/bf51f8755ddb38d92e23ad415fc4e3c02b95b331/text/0188-server-components.md)
  • Network accessline 180
    - [Server components demo](https://github.com/reactjs/server-components-demo)

react/render-props-pattern/SKILL.md

  • Network accessline 197
    In some cases, we can replace render props with Hooks. A good example of this is [Apollo Client](https://www.apollographql.com/docs/react).
  • Network accessline 253
    - [patterns.dev/react/render-props-pattern](https://patterns.dev/react/render-props-pattern)
  • Network accessline 257
    - [Render Props - React](https://reactjs.org/docs/render-props.html)
  • Network accessline 258
    - [React, Inline Functions, and Performance - Ryan Florence](https://cdb.reacttraining.com/react-inline-functions-and-performance-bdff784f5578)
  • Network accessline 259
    - [Use a Render Prop! - Michael Jackson](https://cdb.reacttraining.com/use-a-render-prop-50de598f11ce)

react/server-side-rendering/SKILL.md

  • Network accessline 115
    The Next.js framework also supports SSR. This pre-renders a page on the server on every request. It can be accomplished by exporting an async function called [`getServerSideProps()`](https://nextjs.org/docs/basic-features/data-fetching#gets
  • Network accessline 164
    try {    // Fetch data from external API    const res = await fetch("https://jsonplaceholder.typicode.com/users");
  • Network accessline 165
    // Fetch data from external API    const res = await fetch("https://jsonplaceholder.typicode.com/users");    const data = await res.json();
  • Network accessline 166
    const res = await fetch("https://jsonplaceholder.typicode.com/users");
  • Network accessline 211
    A complete example of SSR with React can be found [here](https://www.digitalocean.com/community/tutorials/react-server-side-rendering).
  • Network accessline 215
    - [patterns.dev/react/server-side-rendering](https://patterns.dev/react/server-side-rendering)

react/static-rendering/SKILL.md

  • Network accessline 145
    - [patterns.dev/react/static-rendering](https://patterns.dev/react/static-rendering)

react/streaming-ssr/SKILL.md

  • Network accessline 137
    - [patterns.dev/react/streaming-ssr](https://patterns.dev/react/streaming-ssr)

vue/async-components/SKILL.md

  • Network accessline 91
    This is where Vue allows us to divide an app into smaller chunks by loading components asynchronously with the help of the [`defineAsyncComponent()`](https://vuejs.org/api/general.html#defineasynccomponent) function.
  • Network accessline 104
    The `defineAsyncComponent()` function accepts a loader function that returns a Promise that resolves to the imported component. However, instead of defining our async component function like the above, we can leverage [dynamic imports](http
  • Network accessline 178
    The `defineAsyncComponent()` function accepts further options like `delay`, `timeout`, `suspensible`, and `onError()` which provide developers with more granular control over the asynchronous loading behavior and user experience. Be sure to
  • Network accessline 184
    - [patterns.dev/vue/async-components](https://patterns.dev/vue/async-components)
  • Network accessline 188
    - [Async Components | Vue Documentation](https://vuejs.org/guide/components/async.html#async-components)

vue/components/SKILL.md

  • Network accessline 69
    > Note: Single-file components in Vue are made possible due to build tools like [Vite](https://vitejs.dev/). These tools help compile `.vue` components to plain JavaScript modules that can be understood in browsers.
  • Network accessline 213
    - [patterns.dev/vue/components](https://patterns.dev/vue/components)
  • Network accessline 217
    - [Components Basics | Vue Documentation](https://vuejs.org/guide/essentials/component-basics.html#components-basics)
  • Network accessline 218
    - [Reactivity Fundamentals | Vue Documentation](https://vuejs.org/guide/essentials/reactivity-fundamentals.html)

vue/composables/SKILL.md

  • Network accessline 346
    - [patterns.dev/vue/composables](https://patterns.dev/vue/composables)
  • Network accessline 350
    - [Composables | Vue Documentation](https://vuejs.org/guide/reusability/composables.html)
  • Network accessline 351
    - [Collection of Vue Composition Utilities | VueUse](https://vueuse.org/)

vue/container-presentational/SKILL.md

  • Network accessline 24
    In 2015, Dan Abramov wrote an article titled ["Presentational and Container Components"](https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0) that changed the way many developers thought about component architecture in Re
  • Network accessline 98
    onMounted(async () => {     const response = await fetch(
  • Network accessline 99
    const response = await fetch(
  • Network accessline 100
    "https://dog.ceo/api/breed/labrador/images/random/6"
  • Network accessline 122
    onMounted(async () => {     const response = await fetch(
  • Network accessline 123
    const response = await fetch(
  • Network accessline 124
    "https://dog.ceo/api/breed/labrador/images/random/6"
  • Network accessline 158
    - [patterns.dev/vue/container-presentational](https://patterns.dev/vue/container-presentational)
  • Network accessline 162
    - [Presentational and Container Components - Dan Abramov](https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0)
  • Network accessline 163
    - [Composables | Vue Documentation](https://vuejs.org/guide/reusability/composables.html)

vue/data-provider/SKILL.md

  • Network accessline 172
    - [patterns.dev/vue/data-provider](https://patterns.dev/vue/data-provider)
  • Network accessline 176
    - [Scoped Slots | Vue Documentation](https://vuejs.org/guide/components/slots.html#scoped-slots)
  • Network accessline 177
    - [Renderless Components | Vue Documentation](https://vuejs.org/guide/components/slots.html#renderless-components)

vue/dynamic-components/SKILL.md

  • Network accessline 54
    When clicking between the tabs, we want components to be dynamically unmounted and mounted without the use of routing. Though something like this could be achieved by conditionally rendering child templates with the help of directives like 
  • Network accessline 76
    In the `App` component template, we'll look to render three separate tab buttons — one for each component we intend to display. We'll use the [`v-for` directive](https://vuejs.org/api/built-in-directives.html#v-for) to help achieve this.
  • Network accessline 180
    - [patterns.dev/vue/dynamic-components](https://patterns.dev/vue/dynamic-components)
  • Network accessline 184
    - [Dynamic Components | Vue Documentation](https://vuejs.org/guide/essentials/component-basics.html#dynamic-components)
  • Network accessline 185
    - [KeepAlive | Vue Documentation](https://vuejs.org/guide/built-ins/keep-alive.html)

vue/provide-inject/SKILL.md

  • Network accessline 102
    Since app-level provides make data available to _all_ components, they are often helpful when creating [plugins](https://vuejs.org/guide/reusability/plugins.html) — self-contained code that adds functionality to the entire Vue app.
  • Network accessline 124
    - [patterns.dev/vue/provide-inject](https://patterns.dev/vue/provide-inject)
  • Network accessline 128
    - [Provide / Inject | Vue Documentation](https://vuejs.org/guide/components/provide-inject.html)

vue/render-functions/SKILL.md

  • Network accessline 137
    Vue's JSX support isn't built in like in React. We need to use a specific Babel plugin — [`@vue/babel-plugin-jsx`](https://github.com/vuejs/babel-plugin-jsx) — to have our JSX code transformed into the appropriate `h()` function calls.
  • Network accessline 167
    - [patterns.dev/vue/render-functions](https://patterns.dev/vue/render-functions)
  • Network accessline 171
    - [Render Functions & JSX | Vue Documentation](https://vuejs.org/guide/extras/render-function.html)
  • Network accessline 172
    - [`@vue/babel-plugin-jsx` | GitHub](https://github.com/vuejs/babel-plugin-jsx)

vue/renderless-components/SKILL.md

  • Network accessline 165
    - [patterns.dev/vue/renderless-components](https://patterns.dev/vue/renderless-components)
  • Network accessline 169
    - [Renderless Components | Vue Documentation](https://vuejs.org/guide/components/slots.html#renderless-components)
  • Network accessline 170
    - [Composables | Vue Documentation](https://vuejs.org/guide/reusability/composables.html)

vue/script-setup/SKILL.md

  • Network accessline 320
    - [patterns.dev/vue/script-setup](https://patterns.dev/vue/script-setup)
  • Network accessline 324
    - [`<script setup>` | Vue Documentation](https://vuejs.org/api/sfc-script-setup.html)

vue/state-management/SKILL.md

  • Network accessline 201
    [Pinia](https://pinia.vuejs.org/) is a state management pattern and library for Vue.js that provides a more structured and scalable way to handle application-level state.
  • Network accessline 203
    Pinia is an alternative to other state management solutions like [Vuex](https://vuex.vuejs.org/) and is now the official state management library for Vue. It provides a simple and efficient way to create and manage stores, which encapsulate
  • Network accessline 291
    - [patterns.dev/vue/state-management](https://patterns.dev/vue/state-management)
  • Network accessline 295
    - [Props | Vue Documentation](https://vuejs.org/guide/components/props.html#props)
  • Network accessline 296
    - [Component Events | Vue Documentation](https://vuejs.org/guide/components/events.html#component-events)
  • Network accessline 297
    - [Simple State Management with Reactivity API | Vue Documentation](https://vuejs.org/guide/scaling-up/state-management.html#simple-state-management-with-reactivity-api)
  • Network accessline 298
    - [Core concepts | Pinia](https://pinia.vuejs.org/core-concepts/)

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 369 facts

and 319 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md javascript/bundle-splitting/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md javascript/bundle-splitting/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md javascript/bundle-splitting/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md javascript/bundle-splitting/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md javascript/bundle-splitting/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md javascript/bundle-splitting/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.