askill
cloudflare-worker

cloudflare-workerSafety 100Repository

Build edge-first TypeScript applications on Cloudflare Workers. Covers Workers API, Hono framework, KV/D1/R2 storage, Durable Objects, Queues, and testing patterns. Use when creating serverless workers, edge functions, or Cloudflare-deployed services.

0 stars
1.2k downloads
Updated 2/5/2026

Package Files

Loading files...
SKILL.md

Cloudflare Workers

Development patterns for TypeScript Workers.

Related skills (majestic-devops):

  • wrangler-coder: CLI deployment, secrets, testing, multi-environment
  • cloudflare-coder: Infrastructure provisioning with Terraform/OpenTofu

Core Principles

Edge-First Thinking

  • Stateless by default: Workers don't persist state between requests
  • Global distribution: Code runs in 300+ data centers worldwide
  • Cold start optimized: V8 isolates start in milliseconds
  • Request/response model: Each invocation handles one request

Storage Selection

StorageUse CaseConsistencyLatency
KVConfig, flags, cached dataEventually consistent~10ms
D1Relational data, transactionsStrong (single region)~30-50ms
R2Files, images, large objectsStrong~50-100ms
Durable ObjectsReal-time state, WebSocketsStrong (per-object)~50ms
QueuesAsync processing, batchingAt-least-onceAsync

Project Structure

my-worker/
├── src/
│   ├── index.ts          # Entry point
│   ├── routes/           # Route handlers
│   ├── services/         # Business logic
│   └── types.ts          # Type definitions
├── test/
├── wrangler.toml         # Cloudflare config
├── package.json
└── tsconfig.json

Quick Start

Minimal wrangler.toml

name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-12-01"
compatibility_flags = ["nodejs_compat"]

See resources/setup.md for full configuration with all bindings.

Basic Hono App

import { Hono } from 'hono';
import { Env } from './types';

const app = new Hono<{ Bindings: Env }>();

app.get('/', (c) => c.json({ status: 'ok' }));
app.onError((err, c) => c.json({ error: 'Internal Error' }, 500));
app.notFound((c) => c.json({ error: 'Not Found' }, 404));

export default app;

See resources/hono.md for route organization and middleware patterns.

Storage Quick Reference

KV (Key-Value)

await env.CACHE.get('key', 'json');
await env.CACHE.put('key', value, { expirationTtl: 3600 });
await env.CACHE.delete('key');

D1 (SQLite)

const user = await env.DB.prepare('SELECT * FROM users WHERE id = ?')
  .bind(id).first();

R2 (Object Storage)

await env.STORAGE.put('path/file.json', JSON.stringify(data));
const object = await env.STORAGE.get('path/file.json');

See resources/storage.md for caching patterns, migrations, and queries.

Durable Objects

Use for: real-time coordination, WebSockets, rate limiting, distributed locks.

// Get DO stub
const id = c.env.COUNTER.idFromName('my-counter');
const stub = c.env.COUNTER.get(id);
const response = await stub.fetch(new Request('http://do/increment'));

See resources/durable-objects.md for full patterns including WebSocket Hibernation.

Queues

// Producer
await env.QUEUE.send({ type: 'email', payload: { to: 'user@example.com' } });

// Consumer (add to default export)
async queue(batch: MessageBatch, env: Env) {
  for (const msg of batch.messages) {
    try { await process(msg.body); msg.ack(); }
    catch { msg.retry(); }
  }
}

See resources/queues-testing.md for consumer patterns and testing setup.

CLI Commands

# Development
wrangler dev                    # Start local server
wrangler dev --remote           # Dev with remote bindings

# Deploy
wrangler deploy

# D1
wrangler d1 migrations apply my-database

# Secrets
wrangler secret put API_KEY

# Logs
wrangler tail

Anti-Patterns

Don'tDo Instead
Service Worker formatES modules
await cache writeswaitUntil for non-blocking
Large KV values (>25MB)R2 for files
server.accept() for WebSocketsctx.acceptWebSocket() (Hibernation API)
Block on analytics/loggingwaitUntil for background tasks
Assume KV immediate consistencyD1 or DOs for consistency-critical

Resources

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/12/2026

A comprehensive and high-quality reference for building Cloudflare Workers with TypeScript and Hono. It covers core principles, project structure, storage options (KV, D1, R2), Durable Objects, Queues, and CLI commands. The inclusion of code snippets, configuration examples, and an anti-patterns table makes it highly actionable and valuable.

100
95
95
90
95

Metadata

Licenseunknown
Version-
Updated2/5/2026
Publishermajiayu000

Tags

apici-cddatabaseobservabilitysecuritytesting