Help us improve
Share bugs, ideas, or general feedback.
From cloudflare
Scaffolds and deploys Cloudflare Workers with Hono routing, Vite dev server, static assets, and D1/R2/KV bindings. Troubleshoots export errors, API conflicts, HMR, and deployments.
npx claudepluginhub jezweb/claude-skills --plugin cloudflareHow this skill is triggered — by the user, by Claude, or both
Slash command
/cloudflare:cloudflare-worker-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a working Cloudflare Worker project from a brief description. Produces a deployable project with Hono routing, Vite dev server, and Static Assets.
Scaffolds Hono API routes for Cloudflare Workers with Zod validation, middleware, typed bindings, error handling, and endpoint documentation. Use post-project setup to add endpoints.
Builds TypeScript apps on Cloudflare Workers using Hono, Workers API, KV/D1/R2 storage, Durable Objects, Queues, and testing patterns. For serverless edge functions and services.
Guides Cloudflare Workers and Pages development with Wrangler CLI, including project init, wrangler.toml config, D1/R2/KV/Queues setup, secrets management, and deployment.
Share bugs, ideas, or general feedback.
Scaffold a working Cloudflare Worker project from a brief description. Produces a deployable project with Hono routing, Vite dev server, and Static Assets.
Ask about the project to choose the right bindings and structure:
A brief like "todo app with database" is enough to proceed.
npm create cloudflare@latest my-worker -- --type hello-world --ts --git --deploy false --framework none
cd my-worker
npm install hono
npm install -D @cloudflare/vite-plugin vite
Copy and customise the asset files from this skill's assets/ directory:
wrangler.jsonc — Worker configurationvite.config.ts — Vite + Cloudflare pluginsrc/index.ts — Hono app with Static Assets fallbackpackage.json — Scripts and dependenciestsconfig.json — TypeScript configpublic/index.html — SPA entry pointAdd bindings to wrangler.jsonc based on project needs. Wrangler 4.45+ auto-provisions resources on first deploy — always specify explicit names:
{
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2025-11-11",
"assets": {
"directory": "./public/",
"binding": "ASSETS",
"not_found_handling": "single-page-application",
"run_worker_first": ["/api/*"]
},
// Add as needed:
"d1_databases": [{ "binding": "DB", "database_name": "my-app-db" }],
"r2_buckets": [{ "binding": "STORAGE", "bucket_name": "my-app-files" }],
"kv_namespaces": [{ "binding": "CACHE", "title": "my-app-cache" }]
}
npm run dev # Local dev at http://localhost:8787
wrangler deploy # Production deploy
// CORRECT — use this pattern
export default app
// WRONG — causes "Cannot read properties of undefined"
export default { fetch: app.fetch }
Source: honojs/hono #3955
Without run_worker_first, SPA fallback intercepts API routes and returns index.html instead of JSON:
"assets": {
"not_found_handling": "single-page-application",
"run_worker_first": ["/api/*"] // CRITICAL
}
Source: workers-sdk #8879
import { defineConfig } from 'vite'
import { cloudflare } from '@cloudflare/vite-plugin'
export default defineConfig({ plugins: [cloudflare()] })
Always set the main field in wrangler.jsonc — the Vite plugin needs it.
When adding cron triggers, switch to explicit export:
export default {
fetch: app.fetch,
scheduled: async (event, env, ctx) => { /* ... */ }
}
Read these for detailed troubleshooting:
references/common-issues.md — 10 documented issues with sources and fixesreferences/architecture.md — Route priority, caching, Workers RPCreferences/deployment.md — CI/CD, auto-provisioning, gradual rollouts