Files
continue/docs/guides/netlify-mcp-continuous-deployment.mdx
continue[bot] 06eb953969 Add bidirectional links between integration docs and cookbooks
- Added Info callouts to cookbook guides referencing Mission Control integrations
- Follows same pattern as Sentry integration documentation
- Creates clear path for users from CLI workflows to Mission Control automation
- PostHog: Links to product analytics integration
- Atlassian: Links to Jira/Confluence integration
- Netlify: Links to deployment automation integration

Co-authored-by: nate <nate@continue.dev>

Generated with [Continue](https://continue.dev)

Co-Authored-By: Continue <noreply@continue.dev>
2025-12-02 00:01:49 +00:00

725 lines
24 KiB
Plaintext

---
title: "Netlify Performance Optimization Cookbook"
description: "Optimize web performance with A/B testing, automated monitoring, and data-driven improvements using Netlify MCP and Continue."
sidebarTitle: "Using Netlify MCP for Performance Optimization"
---
<Card title="Ship Faster Code, Not Slower Sites" icon="gauge-high">
Use AI to automatically monitor performance metrics, run A/B tests between
branches, and get actionable optimization suggestions based on real user data
from Netlify Analytics
</Card>
<Info>
The new [Netlify Mission Control Integration](/mission-control/integrations/netlify) enables **[Continuous AI](/guides/continuous-ai)** for deployment automation - where AI agents autonomously manage deployments, monitor site performance, and respond to deployment events. This cookbook focuses on CLI-based performance optimization workflows, but you can also deploy autonomous deployment agents through Mission Control.
**Get Started:** Use this cookbook to understand Netlify MCP fundamentals, then [enable Mission Control](/mission-control/integrations/netlify) to deploy autonomous deployment management agents across your organization.
</Info>
<Info>
**Did You Know?** Netlify is more than just static hosting! It offers:
- [Split Testing](https://docs.netlify.com/site-deploys/split-testing/) for A/B testing branches
- [Analytics](https://docs.netlify.com/analytics/get-started/) with Core Web Vitals tracking
- [Edge Functions](https://docs.netlify.com/edge-functions/overview/) for personalization at the edge
- [Build Plugins](https://docs.netlify.com/integrations/build-plugins/) ecosystem with 100+ integrations
- [Forms](https://docs.netlify.com/forms/setup/) with built-in spam protection
- [Identity](https://docs.netlify.com/visitor-access/identity/) for user authentication
- [Large Media](https://docs.netlify.com/large-media/overview/) for Git LFS support
This guide shows you how to leverage these features through natural language with Continue CLI!
</Info>
## What You'll Learn
This cookbook teaches you to:
- Run [A/B tests](https://docs.netlify.com/site-deploys/split-testing/) between branches to measure performance impact
- Monitor [Core Web Vitals](https://docs.netlify.com/analytics/get-started/#core-web-vitals) and build performance metrics
- Automatically block deploys that degrade performance using [Deploy Contexts](https://docs.netlify.com/site-deploys/overview/#deploy-contexts)
- Optimize build times with [Build Plugins](https://docs.netlify.com/integrations/build-plugins/) and bundle sizes with AI assistance
## Prerequisites
- GitHub repository with a web project
- [Netlify account](https://netlify.com) (free tier works)
- Node.js 22+ installed (required for Netlify)
- [Continue CLI](https://docs.continue.dev/guides/cli) (`npm i -g @continuedev/cli`)
- [Netlify MCP](https://hub.continue.dev/netlify/netlify-mcp) configured
- [Netlify Development Rules](https://hub.continue.dev/netlify/netlify-development) (recommended)
## Quick Setup
<Info>
The Netlify Development Rules bundle includes guardrails for:
- Proper `.gitignore` configuration
- Function structure and placement
- Edge function constraints
- Local development best practices
</Info>
For all options, first:
<Steps>
<Step title="Install Continue CLI">
```bash
npm i -g @continuedev/cli
```
</Step>
<Step title="Install Netlify CLI">
1. Install Netlify CLI: `npm i -g netlify-cli`
2. Authenticate with Netlify:
`netlify login`
</Step>
</Steps>
## Netlify Continuous AI Workflow Options
<Card title="🚀 Fastest Path to Success" icon="zap">
Skip the manual setup and use our pre-built Netlify Continuous AI agent that includes
optimized prompts, rules, and the Netlify MCP for more consistent results.
</Card>
After completing **Quick Setup** above, you have two paths to get started:
<Tabs>
<Tab title="⚡ Quick Start (Recommended)">
<Steps>
<Step title="Add the Pre-Built Agent">
Visit the [Netlify Continuous AI Agent](https://hub.continue.dev/continuedev/netlify-continuous-ai-agent) on Continue Mission Control and click **"Install Agent"** or run:
```bash
cn --agent continuedev/netlify-continuous-ai-agent
```
This agent includes:
- **Built-in rules** for consistent formatting and error handling
- **Netlify MCP** for more reliable API interactions
</Step>
<Step title="Verify Your Setup">
The agent uses the Netlify MCP automatically and includes best practice rules for deployment and performance optimization.
</Step>
<Step title="Run Performance Analysis">
From your project directory, run:
```bash
cn "Analyze my Netlify site's performance and optimize it for better Core Web Vitals."
```
That's it! The agent handles everything automatically.
</Step>
</Steps>
<Info>
**Why Use the Agent?** Results are more consistent and debugging is easier thanks to the Netlify MCP integration and pre-tested prompts. You can remix the agent later to customize it to your needs.
</Info>
</Tab>
<Tab title="🛠️ Manual Setup">
<Steps>
<Step title="Configure Netlify MCP">
1. Authenticate with Netlify:
`netlify login`
2. Visit [Netlify MCP on Continue
Hub](https://hub.continue.dev/netlify/netlify-mcp)
3. Follow the configuration instructions for your editor
</Step>
<Step title="Add Development Rules">
Install the [Netlify Development Rules](https://hub.continue.dev/netlify/netlify-development) bundle for best practices:
1. Visit the bundle page on Continue Mission Control
2. Click **"Install Rules"**
3. Rules automatically apply to your agent
</Step>
<Step title="Verify Setup">
Test the connection with cn CLI:
```bash
cn
# Then in TUI mode:
"Check my Netlify auth and list sites"
```
</Step>
</Steps>
<Info>
You're all set! Now you can use cn CLI to interact with Netlify using natural language prompts. Check out the examples below to get started.
</Info>
</Tab>
</Tabs>
<Accordion title="Agent Requirements">
To use the pre-built agent, you need either:
- **Continue CLI Pro Plan** with
the models add-on, OR
- **Your own API keys** added to Continue Mission Control secrets
The agent will automatically detect and use your
configuration along with the Netlify MCP for deployment operations.
</Accordion>
---
## Performance Optimization Steps
### Step 1: Baseline Performance Metrics
Establish your current performance baseline using cn CLI:
```bash
# Start cn in TUI mode
cn
# Then ask:
"Show my site's Core Web Vitals and build times"
```
<Tip>
**Test in Plan Mode First**: Before making performance optimizations that
might affect your site, test your prompts in plan mode (see the [Plan Mode
Guide](/guides/plan-mode-guide); press **Shift+Tab** to switch modes). This
shows you what the agent will do without executing it. For example: `"Set up
A/B testing between main and feature branch with performance monitoring"`
</Tip>
<Info>
Netlify automatically tracks:
- **Build Performance**: Compile times, cache
hits
- **Runtime Performance**: Core Web Vitals, Time to Interactive
- **Resource Usage**: Bandwidth, function execution times
</Info>
### Step 2: A/B Test Branch Performance
Compare performance between branches:
```bash
# In cn TUI mode:
"Set up A/B test between main and feature branch on Netlify:
- Split traffic 50/50 between branches
- Track Core Web Vitals for each variant
- Monitor conversion metrics and bounce rate
- Enable analytics to measure performance impact
- Configure cookie-based visitor persistence
- Set test duration for 1000 unique visitors
- Auto-conclude test when statistical significance reached
Report winner based on performance + conversion metrics"
```
<Info>
**Enhanced Analytics**: Combine Netlify's A/B testing with PostHog session
recordings to understand not just which variant performs better, but why users
behave differently. See our [PostHog session analysis
guide](/guides/posthog-github-continuous-ai) to set up session tracking and
create a complete continuous AI analytics workflow.
</Info>
### Step 3: Advanced Build Optimization with Netlify
Leverage Netlify's powerful build features to dramatically reduce build times:
```bash
# In cn TUI mode:
"Optimize my Netlify build performance using these features:
1. Enable Netlify Cache Plugin for dependency caching
- Configure @netlify/plugin-cache for node_modules
- Set up custom cache directories for .next/cache or .nuxt
- Enable Gatsby's incremental builds if applicable
2. Set up Build Plugins from Netlify's ecosystem:
- Install @netlify/plugin-lighthouse for performance monitoring
- Add netlify-plugin-checklinks to prevent broken links
- Configure netlify-plugin-submit-sitemap for SEO
3. Implement Conditional Builds:
- Skip builds when only docs change (ignore: /docs/**)
- Use build.ignore script for custom logic
- Set up monorepo-specific build triggers
4. Configure concurrent builds for monorepos
- Set base directory per package
- Use pnpm workspaces or yarn workspaces
Show me the netlify.toml configuration and explain each optimization"
```
<Info>
**Netlify Build Features You're Getting**:
- [Build Caching](https://docs.netlify.com/configure-builds/build-caching/) - Persist dependencies between builds
- [Build Plugins](https://docs.netlify.com/integrations/build-plugins/) - Extend build process with 100+ plugins
- [Conditional Builds](https://docs.netlify.com/configure-builds/ignore-builds/) - Skip unnecessary builds
- [Monorepo Support](https://docs.netlify.com/configure-builds/monorepos/) - Optimize multi-package repos
These features can reduce build times by 50-70% for most projects!
</Info>
<Tip>
**Discover more optimization prompts!** The Netlify community has documented dozens of build optimization strategies in their [Support Guide: How can I optimize my Netlify build time](https://answers.netlify.com/t/support-guide-how-can-i-optimize-my-netlify-build-time/3907).
Use this guide as inspiration for cn CLI prompts not covered in this cookbook, such as:
- `"Configure my builds to skip Dependabot PRs automatically"`
- `"Set up custom ignore patterns for documentation-only changes"`
- `"Optimize my Contentful webhooks to prevent duplicate builds"`
- `"Show me how to use build hooks instead of automatic git triggers"`
- `"Help me choose between Astro and Hugo based on build performance"`
The community guide contains real-world scenarios that you can turn into AI-assisted solutions - just describe what you want to achieve and let cn CLI handle the implementation!
</Tip>
### Step 4: Bundle Analysis with Netlify's Built-in Tools
Use Netlify's bundle analyzer and optimization features:
```bash
# In cn TUI mode:
"Analyze and optimize my bundle using Netlify's tools:
1. Enable Netlify Bundle Analyzer:
- Add @netlify/plugin-bundle-analyzer to plugins
- Configure size thresholds in netlify.toml
- Generate visual bundle reports
2. Set up Asset Optimization:
- Enable automatic JS minification
- Configure CSS optimization
- Turn on HTML minification
- Set up image processing pipeline
3. Implement Smart Code Splitting:
- Analyze current chunks with the bundle analyzer
- Identify components over 50KB for splitting
- Configure webpack/vite for optimal chunking
- Set up route-based code splitting
4. Configure Netlify's CDN for optimal delivery:
- Set cache headers for static assets
- Enable Brotli compression
- Configure edge caching rules
Generate a full report with before/after bundle sizes"
```
<Card title="Netlify's Performance Arsenal" icon="rocket">
**Features Available Through Netlify MCP**:
- [Bundle
Analyzer](https://docs.netlify.com/configure-builds/build-plugins/bundle-analyzer/): Visualize your JavaScript bundles
- [Asset
Optimization](https://docs.netlify.com/configure-builds/post-processing/):
Automatic minification and compression
- [Edge
Network](https://docs.netlify.com/platform/edge-network/): Global CDN with
smart caching
- [Deploy
Previews](https://docs.netlify.com/site-deploys/deploy-previews/): Test
optimizations before production
</Card>
### Step 5: Image Optimization
Optimize images for better performance:
```bash
# In cn TUI mode:
"Set up Cloudinary image optimization for my Netlify site:
- Install @cloudinary/netlify-plugin via MCP
- Auto-convert images to WebP with fallbacks
- Generate responsive sizes (320w, 640w, 1024w, 1920w)
- Add lazy loading for all images
- Configure blur-up placeholders
- Update netlify.toml with Cloudinary settings
Target: Reduce image payload by 60-80% and improve LCP"
```
## Continuous Performance Monitoring
### Step 6: Performance Budget Enforcement with Lighthouse CI
Set and enforce performance budgets with automated testing:
```bash
# In cn TUI mode:
"Set up Lighthouse CI with performance budgets for my Netlify site:
Requirements:
- LCP must be < 2.5 seconds
- JavaScript bundle must be < 200KB
- Total size < 500KB
- Performance score >= 90
Setup needed:
1. Install @lhci/cli and @netlify/plugin-lighthouse
2. Create lighthouserc.js with these budget assertions
3. Configure netlify.toml to run checks on all deploys
4. Add GitHub status checks to block PRs that exceed budgets
5. Create performance dashboard at /lighthouse-reports
Please configure the complete Lighthouse CI setup with these budgets."
```
<Tip>
This comprehensive setup will automatically test every deploy preview and
production deployment, blocking any changes that violate your performance
budgets.
</Tip>
### Step 7: Real User Monitoring with Netlify Analytics
Leverage Netlify's built-in analytics and integrate advanced RUM solutions:
```bash
# In cn TUI mode:
"Set up comprehensive Real User Monitoring for my Netlify site:
1. Configure Netlify Analytics Pro (requires Pro account):
- Set up server-side analytics (no JS required)
- Track Core Web Vitals (LCP, FID, CLS, INP)
- Monitor top pages by performance score
- Create custom performance alerts
- Configure weekly performance reports
2. Integrate Web Vitals tracking:
- Install web-vitals library for detailed metrics
- Send metrics to Netlify Functions endpoint
- Store performance data in Netlify Blobs
- Create performance dashboard at /metrics
3. Set up Performance Alerts:
- Alert when P75 LCP > 3 seconds
- Notify if CLS increases by 20%
- Monitor JavaScript error rates
- Track 404s and broken resources
- Send alerts to Slack via Netlify Functions
4. Configure Geographic Performance Monitoring:
- Use Netlify Edge Functions to track region-specific metrics
- Identify slow regions with Edge geo data
- Compare performance across CDN nodes
- Optimize edge caching for slow regions
5. Create Custom Performance Dashboard:
- Build dashboard page using Netlify Functions
- Display real-time Core Web Vitals
- Show performance trends over time
- Include browser and device breakdowns
Show me the complete implementation with all code and configurations"
```
<Warning>
**Note**: Netlify Analytics Pro requires a paid Netlify Pro account ($19/month
per site). The prompt above assumes you have this plan. For free tier users,
focus on steps 2-5 which use Netlify Functions and Edge Functions to build
custom analytics.
</Warning>
<Info>
**Netlify Analytics Advantages**:
- [Server-side Analytics](https://docs.netlify.com/analytics/get-started/) - No client-side JavaScript needed
- [Core Web Vitals](https://docs.netlify.com/analytics/core-web-vitals/) - Automatic tracking of Google's metrics
- [Custom Metrics](https://docs.netlify.com/functions/logs/) - Track any metric via Functions
- [Edge Insights](https://docs.netlify.com/edge-functions/overview/#geolocation) - Geographic performance data
- [No Cookie Banner Required](https://docs.netlify.com/analytics/get-started/#privacy) - GDPR compliant by default
Unlike Google Analytics, Netlify Analytics:
- Doesn't slow down your site (server-side)
- Captures 100% of traffic (no ad blockers)
- Respects user privacy (no cookies)
- Shows bot traffic separately
</Info>
<Tip>
**Pro Tip**
Combine Netlify Analytics with Edge Functions to create a
powerful RUM solution that:
- Tracks performance by user segment
- A/B tests
performance optimizations
- Personalizes content based on connection speed
- Automatically serves lighter assets to slow connections
</Tip>
## Automated Performance Checks
### Add GitHub Secrets
Navigate to **Repository Settings → Secrets and variables → Actions** and add:
- `CONTINUE_API_KEY`: Your Continue API key from [hub.continue.dev/settings/api-keys](https://hub.continue.dev/settings/api-keys)
- `NETLIFY_AUTH_TOKEN`: Your Netlify personal access token
- `NETLIFY_SITE_ID`: Your Netlify site ID
### GitHub Actions Performance Guard
Block PRs that degrade performance:
```yaml
name: Performance Check
on:
pull_request:
jobs:
performance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install Continue CLI
run: |
npm install -g @continuedev/cli
echo "✅ Continue CLI installed"
- name: Authenticate Continue CLI
env:
CONTINUE_API_KEY: ${{ secrets.CONTINUE_API_KEY }}
run: |
cn auth login --api-key "$CONTINUE_API_KEY"
echo "✅ Continue CLI authenticated"
- name: Deploy and Test Performance
id: perf
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
run: |
echo "🚀 Deploying PR preview and analyzing performance..."
cn -p "Deploy PR preview and run Lighthouse.
Compare scores with main branch.
Output JSON with score deltas." > performance.json
- name: Comment Performance Results
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const perf = JSON.parse(fs.readFileSync('performance.json'));
const emoji = perf.score_delta < -10 ? '🔴' :
perf.score_delta < 0 ? '🟡' : '🟢';
const comment = `## ${emoji} Performance Impact
| Metric | Main | PR | Delta |
|--------|------|----|---------|
| Performance Score | ${perf.main_score} | ${perf.pr_score} | ${perf.score_delta > 0 ? '+' : ''}${perf.score_delta} |
| LCP | ${perf.main_lcp}s | ${perf.pr_lcp}s | ${perf.lcp_delta > 0 ? '+' : ''}${perf.lcp_delta}s |
| Bundle Size | ${perf.main_bundle}KB | ${perf.pr_bundle}KB | ${perf.bundle_delta > 0 ? '+' : ''}${perf.bundle_delta}KB |
${perf.score_delta < -10 ? '⚠️ **This PR significantly degrades performance. Please optimize before merging.**' : ''}
[View Full Report](${perf.report_url})`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});
// Fail check if performance degrades significantly
if (perf.score_delta < -10) {
core.setFailed('Performance degraded by more than 10 points');
}
```
<Warning>
This workflow will:
- **Block merge** if performance score drops >10 points
- **Warn** on any performance regression
- **Celebrate** improvements with green indicators
</Warning>
## Performance Testing Locally
### Step 8: Local Performance Testing
Test performance before deploying:
```bash
# In cn TUI mode:
"Run production build and measure bundle sizes"
```
### Step 9: Pre-commit Performance Checks
Prevent performance regressions before they happen:
```bash
# In cn TUI mode:
"Add pre-commit hooks for bundle size limits"
```
## Performance Troubleshooting
### Debug Performance Issues
Identify and fix performance bottlenecks:
```bash
# In cn TUI mode:
"Why did my performance score drop?"
```
### Performance Issue Quick Fixes
| Issue | Quick Fix Command (in cn TUI) |
| ------------- | --------------------------------- |
| Slow LCP | `"Preload critical resources"` |
| High CLS | `"Add size attributes to images"` |
| Large bundles | `"Implement code splitting"` |
| Slow builds | `"Enable build caching"` |
| Poor caching | `"Configure cache headers"` |
## What You've Accomplished
<Card title="Performance-First Development" icon="gauge-high">
You've built an AI-powered performance optimization system that:
- Automatically monitors Core Web Vitals
- Runs A/B tests between branches
- Blocks deployments that degrade performance
- Provides actionable optimization
suggestions
</Card>
## Discover Netlify's Hidden Performance Gems
Features many developers don't know Netlify offers:
<CardGroup cols={2}>
<Card title="Edge Functions" icon="bolt">
**[Netlify Edge Functions](https://docs.netlify.com/edge-functions/overview/)**
- Run code at the edge, closer to users
- Transform responses on-the-fly
- A/B test at the edge level
- Personalize content without client-side JS
</Card>
<Card title="Netlify Graph" icon="diagram-project">
**[Netlify Graph](https://docs.netlify.com/graph/overview/)**
- Unified GraphQL gateway for all your APIs
- Automatic TypeScript generation
- Built-in authentication handling
- Zero client-side API keys needed
</Card>
<Card title="On-Demand Builders" icon="hammer">
**[On-Demand
Builders](https://docs.netlify.com/configure-builds/on-demand-builders/)**
- Generate pages only when requested
- Cache dynamically generated content
- Perfect for large sites (10k+ pages)
- Reduce build times dramatically
</Card>
<Card title="Netlify Functions" icon="function">
**[Background Functions](https://docs.netlify.com/functions/background-functions/)**
- Run tasks up to 15 minutes
- Process webhooks asynchronously
- Handle heavy computations
- No timeout worries
</Card>
</CardGroup>
```bash
# Try these advanced features in cn TUI mode:
"Show me how to use Netlify Edge Functions for geo-based personalization"
"Set up On-Demand Builders for my blog with 5000 posts"
"Configure Background Functions for image processing"
```
## Performance Best Practices
The Netlify Performance Rules enforce:
<CardGroup cols={3}>
<Card title="Build Optimization" icon="hammer">
- Dependency caching enabled
- Parallel builds when possible
- Incremental compilation
- Smart cache invalidation
</Card>
<Card title="Runtime Performance" icon="bolt">
- Automatic image optimization
- Efficient resource hints (preload, prefetch)
- Optimal cache headers
- CDN configuration
</Card>
<Card title="Monitoring Standards" icon="chart-line">
- Performance budgets enforced
- Core Web Vitals tracking
- Real user monitoring
- Automated alerts
</Card>
</CardGroup>
## Advanced Performance Strategies
### Progressive Enhancement
```bash
# In cn TUI mode:
"Implement progressive enhancement with basic HTML first"
```
### Multi-variant Testing
```bash
# In cn TUI mode:
"Test 3 bundle strategies and auto-select winner"
```
### Predictive Prefetching
```bash
# In cn TUI mode:
"Analyze navigation patterns and prefetch next pages"
```
## Next Steps
- Install [Netlify MCP](https://hub.continue.dev/netlify/netlify-mcp) from Continue Mission Control
- Set up [Performance Monitoring](https://docs.netlify.com/analytics/get-started/)
- Configure [A/B Testing](https://docs.netlify.com/split-testing/overview/)
- Join the [Continue Discord](https://discord.gg/continue) for support
## Resources
- [Netlify MCP on Continue Mission Control](https://hub.continue.dev/netlify/netlify-mcp)
- [Core Web Vitals Guide](https://web.dev/vitals/)
- [Netlify Analytics Documentation](https://docs.netlify.com/analytics/)
- [Continue Performance Guides](https://docs.continue.dev/guides)