All skills
vercel-labs avatar

/vercel-optimize

@583754a official
by Vercel Labsvercel-labs/agent-skills32k stars
2,784

Use for Vercel cost and performance optimization on deployed projects, especially Next.js, SvelteKit, Nuxt, and limited Astro apps. Collect Vercel metrics, usage, project config, and code scan results first; investigate only metric-backed candidates; produce ranked recommendations grounded in verified files and version-aware Vercel/framework docs. Trigger for Vercel bill reduction, slow or expensive routes, caching opportunities, Function Invocations, Build Minutes, Fast Data Transfer, Core Web Vitals, Bot Management, Fluid compute, or cost breakdown requests.

Use this Skill: https://skilld.dev/gh/vercel-labs/agent-skills/vercel-optimize

This session only. Nothing lands on disk.

referencesplaybookssveltekit.md

≈1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

SvelteKit

Framework-specific playbook for SvelteKit projects on Vercel. Applies in addition to whichever application-profile playbook fits (saas, ecommerce, content-site, etc.). SvelteKit-on-Vercel ships through @sveltejs/adapter-vercel, so most platform-level recs map to adapter config rather than per-route framework APIs.

Typical billing shape

Function Duration dominates server-rendered routes (every +page.server.ts load + +server.ts POST handler runs as a function). Edge Requests grow with API surface (+server.ts and form actions). ISR is supported via the adapter; when enabled, it converts to a cache_result HIT after first render. Image Optimization is rarely a SvelteKit-specific lever (it's the same Vercel image service Next.js uses).

Priority patterns

  1. Adapter ISR for cacheable content. Routes that don't depend on per-request data are still served as functions by default. The adapter accepts an isr: { expiration: 60 } option per route (set in +page.server.ts via export const config). This converts function invocations to cache hits. Cite https://kit.svelte.dev/docs/adapter-vercel + https://vercel.com/docs/incremental-static-regeneration.
  2. Prerender what's static. export const prerender = true in +page.server.ts or +page.ts moves a route from function to CDN. Cite https://kit.svelte.dev/docs/page-options.
  3. Parallel load fetches. A load function with multiple sequential await fetch(...) calls leaves wall-clock time on the table — wrap them in Promise.all (or return promises directly from load, which SvelteKit streams). Cite https://kit.svelte.dev/docs/load.
  4. Move per-request work to +server.ts action handlers and run them via fetch from the client. Reduces SSR cost when only a slice of the page actually needs server data on every request.
  5. hooks.server.ts matcher hygiene. Like Next.js middleware, the handle hook intercepts every request unless filtered. Heavy handle code multiplies cost by request volume. Move work into the specific route's load when only that route needs it.
  6. Adapter runtime + region config. Single-region default; if the project's users skew to a different region, set regions: [...] on the adapter to reduce TTFB by 100-300ms.

Frequent gotchas

  • Per-route SSR when prerender would do. Marketing pages, docs, blog posts often end up as functions because nobody added prerender = true. The scanner flags these.
  • +layout.server.ts data fetches blocking every child route. Auth-check + user-load in a layout makes EVERY function invocation wait on those queries — even routes that don't read user. Push user-load into the routes that need it.
  • Adapter version drift. adapter-vercel@5 adds new options (ISR, split). adapter-vercel@3 doesn't. The recommender must check the installed version before suggesting isr: ....
  • fetch calls in load to your own SvelteKit routes. SvelteKit optimizes these into direct module calls during SSR, but only if the URL is relative. A hardcoded https://your-domain.tld/api/... defeats this optimization.
  • No connection pooling on serverless. Same as Next.js — Postgres without a pooler exhausts the database under load.

Cross-references

  • https://kit.svelte.dev/docs/adapter-vercel — adapter config (ISR, regions, runtime)
  • https://kit.svelte.dev/docs/page-options — prerender, ssr, csr
  • https://kit.svelte.dev/docs/load — parallel fetches in load
  • https://kit.svelte.dev/docs/routing — file conventions
  • https://kit.svelte.dev/docs/hooks — handle / handleFetch
  • https://kit.svelte.dev/docs/form-actions — server-side form handling
  • https://kit.svelte.dev/docs/state-management — request-scoped state
  • https://vercel.com/docs/incremental-static-regeneration — ISR on Vercel
  • https://vercel.com/docs/fluid-compute — Fluid Compute (framework-agnostic)

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The `vercel-optimize` skill is a robust tool designed for performance and cost auditing of Vercel projects. It implements a 'metrics-first' doctrine, ensuring that any code investigation is preceded by an analysis of production telemetry fetched via the official Vercel CLI. The skill demonstrates high security standards, including deterministic gates to limit AI investigation scope, automated redaction of sensitive telemetry identifiers, and a verification framework to prevent hallucinations.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 583754a. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last month.

Steadyupdated 4 months ago
metadata
{
  "version": "1.2.0"
}
  • Nuxt
  • Performance
  • vercel
  • next.js
  • sveltekit
  • astro
  • optimization
  • cost
  • metrics
  • observability

README badge

README badge for vercel-labs/agent-skills/vercel-optimize

Runs a metrics-first audit of Vercel-deployed projects to identify cost and performance optimization opportunities. Collects production metrics, usage, and code signals, then gates candidates by verified impact before investigating Next.js, SvelteKit, Nuxt, and limited Astro apps. Produces ranked recommendations tied to actual route-level performance data and framework-aware documentation.

Generated from the current SKILL.md.

Does this work with my framework?
Vercel Optimize supports Next.js (App Router and Pages Router), SvelteKit, and Nuxt with full metric-backed recommendations. Astro support is limited. Other frameworks like Hono or Remix can run a code-only audit but may not map route-level metrics back to source files.
What do I need to set up before running an audit?
You need Vercel CLI v53+, an authenticated session (`vercel login`), a linked app directory (`vercel link`), and Node.js 20+. Observability Plus is required for route-level metric-backed recommendations.
Does this require Observability Plus?
Observability Plus is required for route-level recommendations. Without it, the skill can still run a limited code-only audit if you accept the reduced scope.
What metrics does this collect and analyze?
The skill collects Vercel production signals via `vercel metrics`, `vercel usage`, and `vercel contract`, then gates investigations based on metric-backed candidates. It analyzes cost (Function Invocations, Build Minutes, Fast Data Transfer), performance (Core Web Vitals), and caching opportunities on a 14-day window.
Can I run this on unsupported frameworks?
Yes, but with limitations. The skill can run a platform/code-only audit for unsupported frameworks and will prompt you to accept the limited scope before proceeding.

Generated from the current SKILL.md. These answers refresh after source changes.