Netlify Deployment Skill
Deploy web projects to Netlify using the Netlify CLI with intelligent detection of project configuration and deployment context.
Overview
This skill automates Netlify deployments by:
- Verifying Netlify CLI authentication
- Detecting project configuration and framework
- Linking to existing sites or creating new ones
- Deploying to production or preview environments
Prerequisites
- Netlify CLI: Installed via npx (no global install required)
- Authentication: Netlify account with active login session
- Project: Valid web project in current directory
- When sandboxing blocks the deployment network calls, rerun with
sandbox_permissions=require_escalated
.
- The deployment might take a few minutes. Use appropriate timeout values.
Authentication Pattern
The skill uses the pre-authenticated Netlify CLI approach:
- Check authentication status with
- If not authenticated, guide user through
- Fail gracefully if authentication cannot be established
Authentication uses either:
- Browser-based OAuth (primary): opens browser for authentication
- API Key (alternative): Set environment variable
Workflow
1. Verify Netlify CLI Authentication
Check if the user is logged into Netlify:
Expected output patterns:
- ✅ Authenticated: Shows logged-in user email and site link status
- ❌ Not authenticated: "Not logged into any site" or authentication error
If not authenticated, guide the user:
This opens a browser window for OAuth authentication. Wait for user to complete login, then verify with
again.
Alternative: API Key authentication
If browser authentication isn't available, users can set:
bash
export NETLIFY_AUTH_TOKEN=your_token_here
2. Detect Site Link Status
- Linked: Site already connected to Netlify (shows site name/URL)
- Not linked: Need to link or create site
3. Link to Existing Site or Create New
If already linked → Skip to step 4
If not linked, attempt to link by Git remote:
bash
# Check if project is Git-based
git remote show origin
# If Git-based, extract remote URL
# Format: https://github.com/username/repo or git@github.com:username/repo.git
# Try to link by Git remote
npx netlify link --git-remote-url <REMOTE_URL>
If link fails (site doesn't exist on Netlify):
bash
# Create new site interactively
npx netlify init
This guides user through:
- Choosing team/account
- Setting site name
- Configuring build settings
- Creating netlify.toml if needed
4. Verify Dependencies
Before deploying, ensure project dependencies are installed:
bash
# For npm projects
npm install
# For other package managers, detect and use appropriate command
# yarn install, pnpm install, etc.
5. Deploy to Netlify
Choose deployment type based on context:
Preview/Draft Deploy (default for existing sites):
This creates a deploy preview with a unique URL for testing.
Production Deploy (for new sites or explicit production deployments):
bash
npx netlify deploy --prod
This deploys to the live production URL.
Deployment process:
- CLI detects build settings (from netlify.toml or prompts user)
- Builds the project locally
- Uploads built assets to Netlify
- Returns deployment URL
6. Report Results
After deployment, report to user:
- Deploy URL: Unique URL for this deployment
- Site URL: Production URL (if production deploy)
- Deploy logs: Link to Netlify dashboard for logs
- Next steps: Suggest to view site or dashboard
Handling netlify.toml
If a
file exists, the CLI uses it automatically. If not, the CLI will prompt for:
- Build command: e.g., ,
- Publish directory: e.g., , ,
Common framework defaults:
- Next.js: build command , publish
- React (Vite): build command , publish
- Static HTML: no build command, publish current directory
The skill should detect framework from
if possible and suggest appropriate settings.
Example Full Workflow
bash
# 1. Check authentication
npx netlify status
# If not authenticated:
npx netlify login
# 2. Link site (if needed)
# Try Git-based linking first
git remote show origin
npx netlify link --git-remote-url https://github.com/user/repo
# If no site exists, create new one:
npx netlify init
# 3. Install dependencies
npm install
# 4. Deploy (preview for testing)
npx netlify deploy
# 5. Deploy to production (when ready)
npx netlify deploy --prod
Error Handling
Common issues and solutions:
"No site linked"
→ Run
or
"Build failed"
→ Check build command and publish directory in netlify.toml or CLI prompts
→ Verify dependencies are installed
→ Review build logs for specific errors
"Publish directory not found"
→ Verify build command ran successfully
→ Check publish directory path is correct
Troubleshooting
Escalated Network Access
If deployment fails due to network issues (timeouts, DNS errors, connection resets), rerun the deploy with escalated permissions (use
sandbox_permissions=require_escalated
). The deploy requires escalated network access when sandbox networking blocks outbound requests.
Example guidance to the user:
The deploy needs escalated network access to deploy to Netlify. I can rerun the command with escalated permissions—want me to proceed?
Environment Variables
For secrets and configuration:
- Never commit secrets to Git
- Set in Netlify dashboard: Site Settings → Environment Variables
- Access in builds via
process.env.VARIABLE_NAME
Tips
- Use (no ) first to test before production
- Run to view site in Netlify dashboard
- Run to view function logs (if using Netlify Functions)
- Use for local development with Netlify Functions
Reference
Bundled References (Load As Needed)
- CLI commands
- Deployment patterns
- netlify.toml guide