canva-sdk-patterns

Featured

Apply production-ready Canva Connect API client patterns for TypeScript and Python. Use when building a reusable API client, implementing token refresh, or establishing team coding standards for Canva integrations. Trigger with phrases like "canva client patterns", "canva best practices", "canva code patterns", "canva API wrapper", "canva TypeScript client".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Canva SDK Patterns ## Overview Production-ready patterns for wrapping the Canva Connect REST API. There is no official SDK — all integrations use `fetch` against `api.canva.com/rest/v1/*` with OAuth Bearer tokens. These patterns add automatic token refresh, retry logic, type safety, and multi-tenant support. ## Prerequisites - Completed `canva-install-auth` setup - Understanding of OAuth 2.0 token lifecycle - TypeScript 5+ project (or Python 3.10+) ## Pattern 1: Type-Safe Client with Auto Token Refresh ```typescript // src/canva/client.ts interface CanvaTokens { accessToken: string; refreshToken: string; expiresAt: number; // Unix ms } interface CanvaClientConfig { clientId: string; clientSecret: string; tokens: CanvaTokens; onTokenRefresh?: (tokens: CanvaTokens) => Promise<void>; // Persist new tokens } export class CanvaClient { private static BASE = 'https://api.canva.com/rest/v1'; private tokens: CanvaTokens; constructor(private config: CanvaClientConfig) { this.tokens = config.tokens; } async request<T = any>(path: string, init: RequestInit = {}): Promise<T> { // Auto-refresh if token expires within 5 minutes if (Date.now() > this.tokens.expiresAt - 300_000) { await this.refreshToken(); } const res = await fetch(`${CanvaClient.BASE}${path}`, { ...init, headers: { 'Authorization': `Bearer ${this.tokens.accessToken}`, 'Content-Type': 'application/json', ...init.headers, ...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

canva-known-pitfalls

Identify and avoid Canva Connect API anti-patterns and common integration mistakes. Use when reviewing Canva code, onboarding developers, or auditing existing Canva integrations for best practices violations. Trigger with phrases like "canva mistakes", "canva anti-patterns", "canva pitfalls", "canva what not to do", "canva code review".

2,266 Updated today
jeremylongshore
AI & Automation Featured

canva-security-basics

Apply Canva Connect API security best practices for OAuth tokens and access control. Use when securing OAuth credentials, implementing least-privilege scopes, or auditing Canva integration security. Trigger with phrases like "canva security", "canva secrets", "secure canva", "canva token security", "canva OAuth security".

2,266 Updated today
jeremylongshore
AI & Automation Featured

canva-reliability-patterns

Implement reliability patterns for Canva Connect API — circuit breakers, idempotency, graceful degradation. Use when building fault-tolerant Canva integrations, implementing retry strategies, or adding resilience to production Canva services. Trigger with phrases like "canva reliability", "canva circuit breaker", "canva resilience", "canva fallback", "canva fault tolerance".

2,266 Updated today
jeremylongshore
AI & Automation Featured

canva-architecture-variants

Choose and implement Canva Connect API architecture blueprints for different scales. Use when designing new Canva integrations, choosing between monolith/service/microservice architectures, or planning migration paths. Trigger with phrases like "canva architecture", "canva blueprint", "how to structure canva", "canva project layout", "canva microservice".

2,266 Updated today
jeremylongshore
AI & Automation Featured

canva-performance-tuning

Optimize Canva Connect API performance with caching, pagination, and connection pooling. Use when experiencing slow API responses, implementing caching strategies, or optimizing request throughput for Canva integrations. Trigger with phrases like "canva performance", "optimize canva", "canva latency", "canva caching", "canva slow", "canva pagination".

2,266 Updated today
jeremylongshore