From netlify-skills
Guides deploying frameworks (Vite/React, Astro, TanStack Start, Next.js, Nuxt, SvelteKit, Remix) to Netlify using adapters for SSR, Edge Functions, redirects, 404s, and env vars.
npx claudepluginhub netlify/context-and-tools --plugin netlify-skillsThis skill uses the workspace's default tool permissions.
Netlify supports any framework that produces static output. For frameworks with server-side capabilities (SSR, API routes, middleware), an adapter or plugin translates the framework's server-side code into Netlify Functions and Edge Functions automatically.
Deploys static/SPA sites and serverless functions to Netlify, validating build config, redirects, headers, environment variables, and deployment readiness.
Guides Netlify CLI for installation, authentication, site linking, Git-based and manual deploys, local dev with netlify dev or Vite plugin, and environment variables.
Deploys web projects to Netlify using Netlify CLI. Handles authentication, site linking or creation via Git remote, and production/preview deployments.
Share bugs, ideas, or general feedback.
Netlify supports any framework that produces static output. For frameworks with server-side capabilities (SSR, API routes, middleware), an adapter or plugin translates the framework's server-side code into Netlify Functions and Edge Functions automatically.
During build, the framework adapter writes files to .netlify/v1/ — functions, edge functions, redirects, and configuration. Netlify reads these to deploy the site. You do not need to write Netlify Functions manually when using a framework adapter for server-side features.
Check these files to determine the framework:
| File | Framework |
|---|---|
astro.config.* | Astro |
next.config.* | Next.js |
nuxt.config.* | Nuxt |
vite.config.* + react-router | Vite + React (SPA or Remix) |
app.config.* + @tanstack/react-start | TanStack Start |
svelte.config.* | SvelteKit |
Each framework has specific adapter/plugin requirements and local dev patterns:
For single-page apps with client-side routing, add a catch-all redirect:
# netlify.toml
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
404.html in your publish directory. Netlify serves it automatically for unmatched routes.Each framework exposes environment variables to client-side code differently:
| Framework | Client prefix | Access pattern |
|---|---|---|
| Vite / React | VITE_ | import.meta.env.VITE_VAR |
| Astro | PUBLIC_ | import.meta.env.PUBLIC_VAR |
| Next.js | NEXT_PUBLIC_ | process.env.NEXT_PUBLIC_VAR |
| Nuxt | NUXT_PUBLIC_ | useRuntimeConfig().public.var |
Server-side code in all frameworks can access variables via process.env.VAR or Netlify.env.get("VAR").