Claude Code Plugins

Community-maintained marketplace

Feedback

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.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name contentful-sdk
description 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.

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:

Delivery SDK (CDA)

For fetching published content in production applications.

Start here: references/delivery/overview.md

Topics:

App Framework SDK

For building apps that extend the Contentful UI.

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

Topics:

Quick Reference

Version Locking (Management SDK)

Always pass sys when updating to prevent conflicts:

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:

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:

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
    }
  }
)