Agent skill

contentful-sdk

Comprehensive Contentful SDK guide for TypeScript/JavaScript. Covers Management SDK (CMA) for content/schema management, Delivery SDK (CDA) for fetching content, and App Framework SDK for building Contentful apps. Use for any Contentful API integration work.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/contentful-sdk

SKILL.md

Contentful SDK Guide

Comprehensive guide for Contentful SDKs in TypeScript/JavaScript.

Which SDK Do You Need?

Management SDK (CMA)

For creating, updating, and managing content, content types, assets, and environments.

Start here: references/management/overview.md

Topics:

  • content-types.md - Define and update content models with field types and validations
  • entries.md - Create, update, query, and publish entries with version locking
  • assets.md - Upload, process, and publish media files
  • environments.md - Create, clone, and manage environments and aliases
  • error-handling.md - Handle rate limits, version conflicts, and validation errors
  • bulk-operations.md - Pagination, batch processing, and concurrency control

Delivery SDK (CDA)

For fetching published content in production applications.

Start here: references/delivery/overview.md

Topics:

  • querying.md - Query parameters, filters, search operators, and pagination
  • includes-links.md - Link resolution, includes parameter, and handling references
  • localization.md - Locale handling, fallbacks, and multi-language content
  • rich-text.md - Rendering rich text fields with embedded entries and assets

App Framework SDK

For building apps that extend the Contentful UI.

Start here: references/app-framework/overview.md

Topics:

  • locations.md - All app locations: field, sidebar, dialog, entry editor, page, config
  • sdk-apis.md - Navigator, dialogs, notifier, access, and window APIs
  • parameters.md - Installation, instance, and invocation parameters

Quick Reference

Version Locking (Management SDK)

Always pass sys when updating to prevent conflicts:

typescript
const entry = await client.entry.get({ spaceId, environmentId, entryId })
await client.entry.update({ spaceId, environmentId, entryId }, {
  sys: entry.sys,  // Required for version locking
  fields: { ... }
})

TypeScript Entry Skeletons (Delivery SDK)

Define type-safe content structures:

typescript
type BlogPostSkeleton = {
  contentTypeId: 'blogPost'
  fields: {
    title: EntryFieldTypes.Text
    slug: EntryFieldTypes.Symbol
    body: EntryFieldTypes.RichText
  }
}
const entry = await client.getEntry<BlogPostSkeleton>('entry-id')

CMA Integration in Apps (App Framework)

Use SDK adapter to avoid exposing tokens:

typescript
import contentful from 'contentful-management'

const cma = contentful.createClient(
  { apiAdapter: sdk.cmaAdapter },
  {
    type: 'plain',
    defaults: {
      spaceId: sdk.ids.space,
      environmentId: sdk.ids.environmentAlias ?? sdk.ids.environment
    }
  }
)

Didn't find tool you were looking for?

Be as detailed as possible for better results