← ClaudeAtlas

designing-sdkslisted

Design production-ready SDKs with retry logic, error handling, pagination, and multi-language support. Use when building client libraries for APIs or creating developer-facing SDK interfaces.
ancoleman/ai-design-components · ★ 368 · Web & Frontend · score 80
Install: claude install-skill ancoleman/ai-design-components
# SDK Design Design client libraries (SDKs) with excellent developer experience through intuitive APIs, robust error handling, automatic retries, and consistent patterns across programming languages. ## When to Use This Skill Use when building a client library for a REST API, creating internal service SDKs, implementing retry logic with exponential backoff, handling authentication patterns, creating typed error hierarchies, implementing pagination with async iterators, or designing streaming APIs for real-time data. ## Core Architecture Patterns ### Client → Resources → Methods Organize SDK code hierarchically: ``` Client (config: API key, base URL, retries, timeout) ├─ Resources (users, payments, posts) │ ├─ create(), retrieve(), update(), delete() │ └─ list() (with pagination) └─ Top-Level Methods (convenience) ``` **Resource-Based (Stripe style):** ```typescript const client = new APIClient({ apiKey: 'sk_test_...' }) const user = await client.users.create({ email: 'user@example.com' }) ``` Use for APIs <100 methods. Prioritizes developer experience. **Command-Based (AWS SDK v3):** ```typescript import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3' await client.send(new PutObjectCommand({ Bucket: '...' })) ``` Use for APIs >100 methods. Prioritizes bundle size and tree-shaking. For detailed architectural guidance, see `references/architecture-patterns.md`. ## Language-Specific Patterns ### TypeScript: Async-Only ```typescript const user = awai