skills/ secondsky/claude-skills

cloudflare-workers-migration

Migrate to Cloudflare Workers from AWS Lambda, Vercel, Express, and Node.js. Use when porting existing applications to the edge, adapting serverless functions, or resolving Node.js API compatibility issues.

0
Installs
—
Rating
—
Success rate
10
Files scanned
Scan passeddevops
Source on GitHub

Security scan

Scan passed

No risky patterns were found in the scanned files.

10 files scannedscanner v1.2.0Oct 11, 2026

Content sha256 02d74dac77e30f86… — run codexguild_scan_skills after installing to verify your local copy.

Static analysis is a first line of defense, not a guarantee. Read the source

SKILL.md

exact scanned copy

Workers Migration Guide

Migrate existing applications to Cloudflare Workers from various platforms.

Migration Decision Tree

What are you migrating from?
├── AWS Lambda
│   └── Node.js handler? → Lambda adapter pattern
│   └── Python? → Consider Python Workers
│   └── Container/custom runtime? → May need rewrite
├── Vercel/Next.js
│   └── API routes? → Minimal changes with adapter
│   └── Full Next.js app? → Use OpenNext adapter
│   └── Middleware? → Direct Workers equivalent
├── Express/Node.js
│   └── Simple API? → Hono (similar API)
│   └── Complex middleware? → Gradual migration
│   └── Heavy node: usage? → Compatibility layer
└── Other Edge (Deno Deploy, Fastly)
    └── Standard Web APIs? → Minimal changes
    └── Platform-specific? → Targeted rewrites

Platform Comparison

FeatureWorkersLambdaVercelExpress
Cold Start~0ms100-500ms10-100msN/A
CPU Limit50ms/10ms15 min10sNone
Memory128MB10GB1GBSystem
Max Response6MB (stream unlimited)6MB4.5MBNone
Global Edge300+ PoPsRegional~20 PoPsManual
Node.js APIsPartialFullFullFull

Top 10 Migration Errors

ErrorFromCauseSolution
fs is not definedLambda/ExpressFile system accessUse KV/R2 for storage
Buffer is not definedNode.jsNode.js globalsImport from node:buffer
process.env undefinedAllEnv access patternUse env parameter
setTimeout not returningLambdaAsync patternsUse ctx.waitUntil()
require() not foundExpressCommonJSConvert to ESM imports
Exceeded CPU timeAllLong computationChunk or use DO
body already consumedExpressRequest bodyClone before read
Headers not iterableLambdaHeaders APIUse Headers constructor
crypto.randomBytesNode.jsNode cryptoUse crypto.getRandomValues
Cannot find moduleAllMissing polyfillCheck Workers compatibility

Quick Migration Patterns

AWS Lambda Handler

// Before: AWS Lambda
export const handler = async (event, context) => {
  const body = JSON.parse(event.body);
  return {
    statusCode: 200,
    body: JSON.stringify({ message: 'Hello' }),
  };
};

// After: Cloudflare Workers
export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const body = await request.json();
    return Response.json({ message: 'Hello' });
  },
};

Express Middleware

// Before: Express
app.use((req, res, next) => {
  if (!req.headers.authorization) {
    return res.status(401).json({ error: 'Unauthorized' });
  }
  next();
});

// After: Hono Middleware
app.use('*', async (c, next) => {
  if (!c.req.header('Authorization')) {
    return c.json({ error: 'Unauthorized' }, 401);
  }
  await next();
});

Environment Variables

// Before: Node.js
const apiKey = process.env.API_KEY;

// After: Workers
export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const apiKey = env.API_KEY;
    // ...
  },
};

Node.js Compatibility

Workers support many Node.js APIs via compatibility flags:

// wrangler.jsonc
{
  "compatibility_flags": ["nodejs_compat_v2"],
  "compatibility_date": "2024-12-01"
}

Supported with nodejs_compat_v2:

  • crypto (most methods)
  • buffer (Buffer class)
  • util (promisify, types)
  • stream (Readable, Writable)
  • events (EventEmitter)
  • path (all methods)
  • string_decoder
  • assert

Not Supported (need alternatives):

  • fs → Use R2/KV
  • child_process → Not possible
  • cluster → Not applicable
  • dgram → Not supported
  • net → Use fetch/WebSocket
  • tls → Handled by platform

When to Load References

ReferenceLoad When
references/lambda-migration.mdMigrating AWS Lambda functions
references/vercel-migration.mdMigrating from Vercel/Next.js
references/express-migration.mdMigrating Express/Node.js apps
references/node-compatibility.mdNode.js API compatibility issues

Migration Checklist

  1. Analyze Dependencies: Check for unsupported Node.js APIs
  2. Convert to ESM: Replace require() with import
  3. Update Env Access: Use env parameter instead of process.env
  4. Replace File System: Use R2/KV for storage
  5. Handle Async: Use ctx.waitUntil() for background tasks
  6. Test Locally: Verify with wrangler dev
  7. Performance Test: Ensure CPU limits aren't exceeded

See Also

  • workers-runtime-apis - Available APIs in Workers
  • workers-performance - Optimization techniques
  • cloudflare-worker-base - Basic Workers setup

Files

10
113.5 KB

Agent reviews

0

No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.

More from secondsky/claude-skills8

[TODO: lowercase-hyphen-case-name]

[TODO: Write comprehensive description in third-person. Start with "This skill provides..." or "This skill should be used when..."] [TODO: Add "Use when" scenarios - specific situations where Claude should use this skill] [TODO: Add keywords - technologies, use cases, error messages that should tr

Scan passed 0
aceternity-ui

100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or encountering animation, shadcn CLI integration errors.

Scan passed 0
api-authentication

Secure API authentication with JWT, OAuth 2.0, API keys. Use for authentication systems, third-party integrations, service-to-service communication, or encountering token management, security headers, auth flow errors.

Scan passed 0
api-changelog-versioning

Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use when managing API versions, communicating breaking changes, or creating upgrade guides.

Scan passed 0
api-contract-testing

Verifies API contracts between services using consumer-driven contracts, schema validation, and tools like Pact. Use when testing microservices communication, preventing breaking changes, or validating OpenAPI specifications.

Needs review 0
api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

Scan passed 0
api-error-handling

Implements standardized API error responses with proper status codes, logging, and user-friendly messages. Use when building production APIs, implementing error recovery patterns, or integrating error monitoring services.

Scan passed 0
api-filtering-sorting

Builds flexible API filtering and sorting systems with query parameter parsing, validation, and security. Use when implementing search endpoints, building data grids, or creating dynamic query APIs.

Scan passed 0

Related devops skillsscan passed

network-config-validation

Pre-deployment checks for router and switch configuration, including dangerous commands, duplicate addresses, subnet overlaps, stale references, management-plane risk, and IOS-style security hygiene. Use when reviewing a router or switch configuration before deployment.

Scan passed 0
canary

Post-deploy canary monitoring. (gstack)

Scan passed 0
sandbox-stable

Build or maintain Cloudflare Sandbox apps on the stable @cloudflare/sandbox package. Use sandbox-next for preview apps and sandbox-migrate-to-next for stable-to-preview migrations.

Scan passed 0
adapter-aws-lambda

Deploy tRPC on AWS Lambda with awsLambdaRequestHandler() from @trpc/server/adapters/aws-lambda for API Gateway v1 (REST, APIGatewayProxyEvent) and v2 (HTTP, APIGatewayProxyEventV2), and Lambda Function URLs. Enable response streaming with awsLambdaStreamingRequestHandler() wrapped in awslambda.strea

Scan passed 0
observability-and-instrumentation

Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the availabl

Scan passed 0
firebase-app-hosting-basics

Deploys and manages full-stack web applications (Next.js, Angular) with Server-Side Rendering (SSR) using Firebase App Hosting. Use when deploying Next.js/Angular apps, configuring apphosting.yaml or firebase.json apphosting blocks, managing secrets, setting up GitHub CI/CD, or configuring Blaze bil

Scan passed 0