aws-spa-deploy
Use this skill whenever the user is deploying a React/Vite single-page app to AWS, or mentions Amplify Hosting, amplify.yml, CDK,…
Use this skill whenever the user is improving Core Web Vitals or page load performance, or mentions slow pages, PageSpeed Insights / Lighthouse failures or insights, LCP/CLS/INP scores, bundle size, image/font optimization, or third-party script impact. Covers Core Web Vitals,
Claude Code
$ npx -y skills add ziniman/ai-instruct --skill web-performance --agent claude-code
Codex
$ npx skills add ziniman/ai-instruct --skill web-performance -a codex -y
Cursor
$ npx skills add ziniman/ai-instruct --skill web-performance -a cursor -y
Gemini CLI
$ npx skills add ziniman/ai-instruct --skill web-performance -a gemini-cli -y
GitHub Copilot
$ npx skills add ziniman/ai-instruct --skill web-performance -a github-copilot -y
OpenCode
$ npx skills add ziniman/ai-instruct --skill web-performance -a opencode -y
Windsurf
$ npx skills add ziniman/ai-instruct --skill web-performance -a windsurf -y
name: web-performance description: 'Use this skill whenever the user is improving Core Web Vitals or page load performance, or mentions slow pages, PageSpeed Insights / Lighthouse failures or insights, LCP/CLS/INP scores, bundle size, image/font optimization, or third-party script impact. Covers Core Web Vitals, LCP image priority (fetchpriority, preload, lazy loading), image formats (AVIF/WebP), font loading, JavaScript bundle size, legacy polyfills and browserslist, CSS build size, script loading (async/defer, tag managers), preconnect/dns-prefetch, critical CSS and CSP, CDN cache headers and compression, bfcache and Speculation Rules prerendering, and measurement tools (CrUX, web-vitals). Skip for backend latency tuning, database query optimization, or CI build speed.'
> Applies to: Any website or web app | Updated: October 2026
A practical reference for measuring and improving web performance - covering Core Web Vitals, image and font optimization, JavaScript bundle size, CSS build size, CDN caching, instant navigations, third-party JavaScript impact, and validation tools.
---
Answer these questions before making any performance changes. Each has a default - use it if the user hasn't said otherwise.
**Q: Which pages are the priority targets?** (landing page, dashboard, auth-gated app pages, all pages) Default: public-facing pages first - these are indexed by search engines and directly affect user experience. Auth-gated pages matter less for search: the Chrome User Experience Report (CrUX) only publishes page-level data for publicly discoverable (indexable) URLs, although visits to those pages still count toward the origin-level score.
**Q: What is the current performance baseline?** Default: unknown - run PageSpeed Insights on the target URL before making any changes, so you have a before/after comparison. Note the LCP (Largest Contentful Paint) element type (image or text), TTFB (Time to First Byte), and the specific insights and diagnostics flagged.
**Q: Are you optimizing for lab scores (Lighthouse) or field data (real users)?** Default: both - but prioritize fixing field data issues flagged in Google Search Console > Core Web Vitals first. Lab scores are easier to game; field data reflects real users on real devices and networks.
**Q: What framework or rendering model is the site using?** (plain HTML, single-page app (SPA) with Vite, Next.js App Router, Astro, Nuxt, WordPress) Default: detect from config files (`next.config.*`, `vite.config.*`, `astro.config.*`) if visible; otherwise assume plain HTML. Framework-specific advice is in clearly labeled subsections throughout this guide.
**Q: How are images and web fonts currently served?** (JPEG/PNG vs WebP/AVIF; Google Fonts via `<link>`, `@import` in CSS, self-hosted, framework font utility) Default: JPEG/PNG images and Google Fonts via `<link>` - check the `public/` or `assets/` directory, the HTML `<head>`, and global CSS files before assuming.
**Q: Is a CDN or hosting platform configured with custom cache headers?** Default: no - many platforms (plain S3, some shared hosts) do not send long-lived browser cache headers on static assets by default. Check the hosting config and run `curl -I` on a deployed asset before assuming.
> **AI assistant:** Read the user's answers (or use the defaults above) before generating any code, and run PageSpeed Insights first if no baseline exists. Identify the LCP element type before optimizing images - if it is a `<p>` or `<h1>`, TTFB and render-blocking CSS matter more than image work. Also check `package.json` for a `browserslist` entry and the framework version (Next.js 16 renamed several APIs used in this guide), and skip framework-specific subsections that don't match the stack.
---
This guide is split into reference files. Use the Section 0 answers to decide which apply, then read only those; skip the rest.
Turn your AI assistant into a senior web developer. Production-ready guides for SEO, performance, agent-readiness, and more.
Use this skill whenever the user is deploying a React/Vite single-page app to AWS, or mentions Amplify Hosting, amplify.yml, CDK,…
Use this skill whenever the user installs, configures, or debugs Google Analytics 4, or mentions gtag.js, the Google tag, GTM,…
Use this skill whenever the user is building, reviewing, or launching a public website or web app; SEO, LLMO, and agent-readiness…
Use this skill whenever the user is building or reviewing any web UI. Accessibility is a baseline requirement, not a niche…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.