Deploy to Cloudflare edge platform. Use when deploying static sites to Pages, serverless functions to Workers, or configuring CDN/DNS. Covers Wrangler CLI.
Scanned 9/22/2026
Install to Claude Code
npx -y skills add nguyenhuuca/assessment --skill deploy-cloudflare --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Deploy Cloudflare?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/nguyenhuuca-deploy-cloudflare)More formats (shields.io, HTML) on the badges page.
---
name: deploy-cloudflare
description: Deploy to Cloudflare edge platform. Use when deploying static sites to Pages, serverless functions to Workers, or configuring CDN/DNS. Covers Wrangler CLI.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
---
# Deploy to Cloudflare
## Why Cloudflare?
- Global edge network (300+ cities)
- Zero cold starts (Workers)
- Automatic HTTPS and DDoS protection
- Integrated CDN and DNS
- Generous free tier
## Quick Start
```bash
# Install Wrangler
npm install -g wrangler
# Login
wrangler login
# Deploy Pages
wrangler pages deploy ./dist
# Deploy Worker
wrangler deploy
```
## Cloudflare Pages
### Deploy Static Site
```bash
# One-time deploy
wrangler pages deploy ./dist --project-name=my-app
# Connect Git repo (auto-deploy)
wrangler pages project create my-app --production-branch=main
```
### Build Configuration
```toml
# wrangler.toml (Pages Functions)
name = "my-app"
compatibility_date = "2025-01-01"
[build]
command = "npm run build"
```
## Cloudflare Workers
### Worker Configuration
```toml
# wrangler.toml
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2025-01-01"
[vars]
ENVIRONMENT = "production"
[[kv_namespaces]]
binding = "MY_KV"
id = "abc123"
```
### Basic Worker
```typescript
export default {
async fetch(request, env, ctx) {
return new Response('Hello from the edge!', {
headers: { 'Content-Type': 'text/plain' }
});
}
};
```
## Environment & Secrets
```bash
# Set secret (encrypted)
wrangler secret put API_KEY
# Set variable (plain text)
wrangler pages secret put API_URL
# Bulk upload
echo "SECRET_KEY" | wrangler secret put SECRET_KEY
```
## DNS Management
```bash
# List DNS records
wrangler dns list example.com
# Add A record
wrangler dns create example.com --type A --name www --content 1.2.3.4
# Update record
wrangler dns update example.com --type A --name www --content 5.6.7.8
```
## Deployment Workflow
### 1. Initialize Project
```bash
wrangler init my-project
cd my-project
```
### 2. Develop Locally
```bash
wrangler dev
```
### 3. Deploy
```bash
# Production
wrangler deploy
# Preview
wrangler deploy --env staging
```
## Best Practices
1. **Use Environments**: Separate staging and production
2. **Versioning**: Rollback via dashboard if needed
3. **Edge Caching**: Leverage Cache API for performance
4. **Rate Limiting**: Protect Workers with rate limits
5. **Monitoring**: Enable Workers Analytics
## Common Commands
```bash
# View logs (tail)
wrangler tail
# List deployments
wrangler deployments list
# Rollback
wrangler rollback --message "Revert breaking change"
# KV operations
wrangler kv:key put --binding=MY_KV "key" "value"
wrangler kv:key get --binding=MY_KV "key"
```
## Anti-Patterns
- **Don't** store secrets in wrangler.toml (use `wrangler secret`)
- **Don't** deploy without testing locally (`wrangler dev`)
- **Don't** ignore compatibility_date (affects runtime behavior)
- **Don't** use Workers for long-running tasks (30s limit)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!