{"name":"deploy-site-to-netlify","description":"Deploys a web project to Netlify with the Netlify CLI - check login, link or create the site, confirm build settings in netlify.toml, ship a draft preview, then promote to production. Use when the user wants to host on Netlify, publish a preview deploy, link a repo to Netlify, or fix a Netlify build setting.","category":"deployment","tags":["netlify","hosting"],"models":["any"],"proven":false,"passing_families":0,"model_testing":"Not yet model-tested; testing Jan 2027","url":"https://theskillvault.ai/skills/deploy-site-to-netlify","api_url":"https://theskillvault.ai/api/skills/deploy-site-to-netlify","raw_url":"https://theskillvault.ai/api/skills/deploy-site-to-netlify/raw","body":"# Deploy a site to Netlify\n\nNetlify builds your site and hosts it. Ship a draft preview first, check it, then publish.\n\n## When to use\n- You want to put a site or front-end app live on Netlify.\n- You need a shareable preview link before publishing.\n- The Netlify build uses the wrong command or folder.\n\n## Steps\n1. Build locally (`npm run build`) so you know the build command and output folder work.\n2. Run `npx netlify status`. If you are not logged in, run `npx netlify login`.\n3. Link the folder: `npx netlify link` for an existing site, or `npx netlify init` to create one.\n4. Add a `netlify.toml` so settings live in the repo:\n\n```toml\n[build]\n  command = \"npm run build\"\n  publish = \"dist\"\n```\n\n5. Add secrets in the Netlify UI or with `npx netlify env:set NAME value`. Never commit them.\n6. Ship a draft: `npx netlify deploy`. Open the draft URL and click through key pages.\n7. Ask before publishing, then run `npx netlify deploy --prod`.\n8. Report the live URL and the deploy log link.\n\n## Gotchas\n- The publish folder differs by tool: `dist` for Vite and Astro, `build` for Create React App, `out` for a static Next.js export.\n- Single-page apps need a catch-all redirect (`/* /index.html 200`) or deep links return 404.\n- A `NETLIFY_AUTH_TOKEN` is a password. Keep it in CI secrets only.\n- Environment variables set after a deploy need a fresh deploy to take effect.\n\n## Portability\nWorks with any static or Jamstack framework. If you use Next.js, Netlify's Next.js runtime is added for you; the same preview-then-prod flow applies instead of a manual export.\n\n## Example prompt\n\"Put my Astro site on Netlify. Give me a preview link first, then publish when I say so.\"\n\n## Done when\n- A draft URL was checked, then the production URL loads.\n- `netlify.toml` holds the build command and publish folder.\n- No tokens or secrets are committed.\n\n---\nModified from \"netlify-deploy\" in openai/skills (Apache-2.0). Changes by TheSkillVault are listed in the metadata above. See LICENSE.txt.","files":["LICENSE.txt"],"license":"Apache-2.0","license_name":"Apache License 2.0","license_url":"https://www.apache.org/licenses/LICENSE-2.0","attribution":"Based on work by OpenAI (openai/skills, netlify-deploy) (Copyright (c) OpenAI (openai/skills, netlify-deploy); Apache License 2.0 text in LICENSE.txt, Apache License 2.0), https://github.com/openai/skills/tree/49f948faa9258a0c61caceaf225e179651397431/skills/.curated/netlify-deploy; adapted by TheSkillVault, https://theskillvault.ai","install":{"claude_code":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/deploy-site-to-netlify/raw' -o ~/'.claude/skills/deploy-site-to-netlify/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/deploy-site-to-netlify/files/LICENSE.txt' -o ~/'.claude/skills/deploy-site-to-netlify/LICENSE.txt'","cursor":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/deploy-site-to-netlify/raw' -o '.cursor/skills/deploy-site-to-netlify/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/deploy-site-to-netlify/files/LICENSE.txt' -o '.cursor/skills/deploy-site-to-netlify/LICENSE.txt'","agents":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/deploy-site-to-netlify/raw' -o '.agents/skills/deploy-site-to-netlify/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/deploy-site-to-netlify/files/LICENSE.txt' -o '.agents/skills/deploy-site-to-netlify/LICENSE.txt'","mcp_url":"https://theskillvault.ai/mcp","cursor_mcp_deeplink":"cursor://anysphere.cursor-deeplink/mcp/install?name=theskillvault&config=eyJ1cmwiOiJodHRwczovL3RoZXNraWxsdmF1bHQuYWkvbWNwIn0%3D","mcp_config":{"mcpServers":{"theskillvault":{"url":"https://theskillvault.ai/mcp"}}}},"bundles":[],"tested_on":[{"family":"chatgpt","name":"ChatGPT","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"claude","name":"Claude","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"gemini","name":"Gemini","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"grok","name":"Grok","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"llama","name":"Llama","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"deepseek","name":"DeepSeek","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"mistral","name":"Mistral","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"qwen","name":"Qwen","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"kimi","name":"Kimi K","outcome":null,"date":null,"source":null,"counts":false,"stale":false}],"proven_rule":{"threshold":5,"window_days":365,"computed_at":"2026-11-02T03:20:33.817Z"}}