aceternity-ui
100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or…
Cloudflare Durable Objects for stateful coordination and real-time apps. Use for chat, multiplayer games, WebSocket hibernation, or encountering class export, migration, alarm errors.
Claude Code
$ npx -y skills add secondsky/claude-skills --skill cloudflare-durable-objects --agent claude-code
Codex
$ npx skills add secondsky/claude-skills --skill cloudflare-durable-objects -a codex -y
Cursor
$ npx skills add secondsky/claude-skills --skill cloudflare-durable-objects -a cursor -y
Gemini CLI
$ npx skills add secondsky/claude-skills --skill cloudflare-durable-objects -a gemini-cli -y
GitHub Copilot
$ npx skills add secondsky/claude-skills --skill cloudflare-durable-objects -a github-copilot -y
OpenCode
$ npx skills add secondsky/claude-skills --skill cloudflare-durable-objects -a opencode -y
Windsurf
$ npx skills add secondsky/claude-skills --skill cloudflare-durable-objects -a windsurf -y
name: cloudflare-durable-objects
description: "Cloudflare Durable Objects for stateful coordination and real-time apps. Use for chat, multiplayer games, WebSocket hibernation, or encountering class export, migration, alarm errors."
metadata:
keywords:
- durable objects
- cloudflare do
- DurableObject class
- do bindings
- websocket hibernation
- do state api
- ctx.storage.sql
- ctx.acceptWebSocket
- webSocketMessage
- alarm() handler
- storage.setAlarm
- idFromName
- newUniqueId
- getByName
- DurableObjectStub
- serializeAttachment
- real-time cloudflare
- multiplayer cloudflare
- chat room workers
- coordination cloudflare
- stateful workers
- new_sqlite_classes
- do migrations
- location hints
- RPC methods
- blockConcurrencyWhile
- "\"do class export\""
- "\"new_sqlite_classes\""
- "\"migrations required\""
- "\"websocket hibernation\""
- "\"alarm api error\""
- "\"global uniqueness\""
- "\"binding not found\""
license: MIT**Status**: Production Ready ✅ **Last Updated**: 2025-11-25 **Dependencies**: cloudflare-worker-base (recommended) **Latest Versions**: wrangler@4.81.0+, @cloudflare/workers-types@4.20260408.0+ **Official Docs**: https://developers.cloudflare.com/durable-objects/
[What are Durable Objects?](#what-are-durable-objects) • [Quick Start](#quick-start-10-minutes) • [When to Load References](#when-to-load-references) • [Class Structure](#durable-object-class-structure) • [State API](#state-api---persistent-storage) • [WebSocket Hibernation](#websocket-hibernation-api) • [Alarms](#alarms-api---scheduled-tasks) • [RPC vs HTTP](#rpc-vs-http-fetch) • [Stubs & Routing](#creating-durable-object-stubs-and-routing) • [Migrations](#migrations---managing-do-classes) • [Common Patterns](#common-patterns) • [Critical Rules](#critical-rules) • [Known Issues](#known-issues-prevention)
**Globally unique, stateful objects** with single-point coordination, strong consistency (ACID), WebSocket Hibernation (thousands of connections), SQLite storage (1GB), and alarms API.
**Use for:** Chat rooms, multiplayer games, rate limiting, session management, leader election, stateful workflows ---
npm create cloudflare@latest my-durable-app -- \ --template=cloudflare/durable-objects-template --ts --git --deploy false cd my-durable-app && bun install && npm run dev
**1. Install types:**
bun add -d @cloudflare/workers-types
**2. Create DO class** (`src/counter.ts`):
import { DurableObject } from 'cloudflare:workers';
export class Counter extends DurableObject {
async increment(): Promise<number> {
let value: number = (await this.ctx.storage.get('value')) || 0;
await this.ctx.storage.put('value', ++value);
return value;
}
}
export default Counter; // CRITICAL**3. Configure** (`wrangler.jsonc`):
{
"durable_objects": {
"bindings": [{ "name": "COUNTER", "class_name": "Counter" }]
},
"migrations": [
{ "tag": "v1", "new_sqlite_classes": ["Counter"] }
]
}**4. Call from Worker** (`src/index.ts`):
import { Counter } from './counter';
interface Env {
COUNTER: DurableObjectNamespace<Counter>;
}
export { Counter };
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const stub = env.COUNTER.getByName('global-counter');
return new Response(`Count: ${await stub.increment()}`);
},
};**Deploy:**
bunx wrangler deploy
---
Use these interactive commands for guided workflows:
These agents work autonomously without user interaction:
---
145 production-ready skills for Claude Code CLI 🔌 Platform / Harness Support These plugins ship as Claude Code marketplace plugins (.claude-plugin/ manifests) and Codex CLI plugins (.codex-plugin/ manifests).
100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or…
Secure API authentication with JWT, OAuth 2.0, API keys. Use for authentication systems, third-party integrations,…
Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use…
Verifies API contracts between services using consumer-driven contracts, schema validation, and tools like Pact. Use when testing…
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use…
Implements standardized API error responses with proper status codes, logging, and user-friendly messages. Use when building…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.