contentful-nextjs — скилл для Claude Code: Contentful в Next.js
Подключает Contentful к существующему проекту Next.js: SDK, переменные окружения, клиенты для продакшена и превью, Draft Mode.
npx skills add contentful/skills --skill contentful-nextjs -a claude-codeЧто делает contentful-nextjs
Скилл ведёт агента по шагам: проверить структуру проекта, настроить переменные окружения, поставить и инициализировать contentful, реализовать выборку опубликованного контента, добавить поведение для Draft Mode и проверить всё минимальным тестовым маршрутом. Работает и с App Router, и с Pages Router. Если тип роутера не задан, скилл берёт App Router.
Нужны три переменные: CONTENTFUL_SPACE_ID, CONTENTFUL_ACCESS_TOKEN и CONTENTFUL_PREVIEW_ACCESS_TOKEN для превью. Оба токена выдаёт один API-ключ в настройках пространства. Если переменных нет, скилл просит добавить их в .env.local до продолжения. Для обычной выдачи используется CDA-хост, для Draft Mode — preview.contentful.com с превью-токеном.
Клиент советует держать в общем модуле, а в поле environment подставлять алиас вроде master, чтобы рантайм не зависел от ID релизного окружения. Про версии Next.js скилл не полагается на память: перед советом об апгрейде или обходном пути он сверяется с релизами на GitHub. Персонализация и Experiences SDK сюда не входят, для них есть отдельный скилл.
Какие задачи решает
- подключить Contentful к уже готовому проекту Next.js
- развести клиенты для опубликованного контента и для превью
- настроить Draft Mode и показ черновиков редактору
- выбрать между App Router и Pages Router при выборке записей
- убрать зависимость рантайма от ID релизного окружения через алиас
Примеры запросов агенту
- настрой Contentful в этом Next.js проекте
- добавь превью через Draft Mode для Contentful
- сделай выборку записей Contentful в Server Components
Как установить contentful-nextjs
1Через Skills CLI (Vercel)
npx skills add contentful/skills --skill contentful-nextjs -a claude-code2Вручную: положить файлы
~/.claude/skills/contentful-nextjs/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/contentful-nextjs/
1Через Skills CLI (Vercel)
npx skills add contentful/skills --skill contentful-nextjs -a codex2Вручную: положить файлы
.agents/skills/contentful-nextjs/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add contentful/skills --skill contentful-nextjs -a cursor2Вручную: положить файлы
.cursor/skills/contentful-nextjs/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install contentful/skills contentful-nextjs2Вручную: положить файлы
.github/skills/contentful-nextjs/SKILL.md1Через Skills CLI (Vercel)
npx skills add contentful/skills --skill contentful-nextjs -a gemini-cli2Командой платформы
gemini skills install https://github.com/contentful/skills --path skills/contentful-nextjsВручную: положить файлы
.devin/skills/contentful-nextjs/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add contentful/skills --skill contentful-nextjs -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о contentful-nextjs
Как установить contentful-nextjs в Claude?
Выполните npx skills add contentful/skills --skill contentful-nextjs -a claude-code. Скилл появится в ~/.claude/skills/contentful-nextjs/SKILL.md.
Что делает contentful-nextjs?
Проводит интеграцию Contentful в существующий Next.js: установка SDK, переменные окружения, клиенты для продакшена и превью, выборка контента и Draft Mode.
Какие переменные окружения нужны?
CONTENTFUL_SPACE_ID, CONTENTFUL_ACCESS_TOKEN и CONTENTFUL_PREVIEW_ACCESS_TOKEN для превью. Оба токена берутся из одного API-ключа в настройках пространства Contentful.
Исходный текст
SKILL.md · MIT
---
name: contentful-nextjs
description: >-
Add and configure Contentful in an existing Next.js project. Covers installing
the JavaScript SDK, configuring environment variables, creating production and
preview-aware clients, fetching content in App Router or Pages Router, and
wiring Draft Mode preview flows. Use when users ask to integrate Contentful
with Next.js, fetch entries, set up preview or draft content, or configure
the Contentful client. Also triggers on "Contentful SDK Next.js",
"contentful.js", "fetch Contentful entries", "get content from Contentful",
"Contentful preview", "preview mode", "Contentful environment variables",
"Contentful client setup", "create Contentful client", "Pages Router
Contentful", "getStaticProps Contentful", "Server Components Contentful",
"revalidate Contentful", "ISR Contentful". Not for personalization or
Experiences SDK setup (contentful-personalization). Not for non-Next.js
frameworks (contentful-guide can route to platform docs).
argument-hint: "[what to set up]"
allowed-tools: Bash(npm install contentful) Bash(npm install @contentful/rich-text-*) mcp__contentful-mcp__* mcp__plugin_contentful_contentful-mcp__*
---
# Contentful Next.js
Use this skill to integrate Contentful into an existing Next.js application.
Contentful is a headless, API-first CMS (composable content platform) that lets Next.js apps fetch structured content through delivery and preview APIs.
## Scope
- Next.js App Router and Pages Router.
- Published content delivery (CDA).
- Preview content delivery with Draft Mode (CPA).
- Environment variable and client setup patterns.
- Environment alias-aware setup for stable deployment paths.
## Not in scope
- Personalization/optimization implementations.
- Studio Experiences SDK setup.
- Full content-model strategy design.
## Contentful MCP note
- If the user wants easier agent-driven interaction with Contentful during setup, suggest the Contentful MCP server docs: `https://www.contentful.com/developers/docs/tools/mcp-server/`.
- Keep this skill focused on Next.js implementation. MCP guidance complements setup but does not replace app-side client wiring.
## Project state
```!
echo "=== Contentful packages ===" && node -e "try{const p=require('./package.json');const d={...p.dependencies,...p.devDependencies};const c=Object.entries(d).filter(([k])=>k.includes('contentful'));console.log(c.length?c.map(([k,v])=>k+'@'+v).join('\n'):'(Contentful SDK not installed)')}catch{console.log('(no package.json)')}" 2>/dev/null
echo ""
echo "=== Contentful env vars ===" && grep -h CONTENTFUL .env.local .env 2>/dev/null | sed 's/=.*/=<set>/' || echo "(no Contentful env vars found in .env.local or .env)"
echo ""
echo "=== Router type ===" && ([ -d "app" ] && echo "App Router detected (app/ directory exists)" || ([ -d "pages" ] && echo "Pages Router detected (pages/ directory exists)" || echo "(could not detect router type)"))
```
## Workflow
1. Check the latest stable Next.js release online at `https://github.com/vercel/next.js/releases` when version-specific guidance is needed.
2. Confirm Next.js project structure (App Router vs Pages Router).
3. Configure required env vars. If they are missing, ask the user to add them to `.env.local` before continuing, and explain where to find each value.
4. Install and initialize `contentful` SDK.
5. Implement published-content fetching.
6. Add preview-aware behavior for Draft Mode.
7. Validate with a minimal test route/page and troubleshooting checklist.
## Version-check policy
- Do not rely on memory for "latest Next.js version" claims.
- Verify against `https://github.com/vercel/next.js/releases` before recommending upgrades, compatibility workarounds, or version-specific fixes.
- Treat the latest non-prerelease tag as default unless the user explicitly asks for canary/RC guidance.
## Required environment variables
- `CONTENTFUL_SPACE_ID` - Find it in the Contentful URL (`/spaces/<SPACE_ID>/...`) or in **Space settings -> API keys**.
- `CONTENTFUL_ACCESS_TOKEN` - CDA token from **Space settings -> API keys**.
- `CONTENTFUL_PREVIEW_ACCESS_TOKEN` (for preview workflows) - CPA token from **Space settings -> API keys**.
Creating an API key in Contentful provides both tokens needed here:
- CDA token -> `CONTENTFUL_ACCESS_TOKEN`
- CPA token -> `CONTENTFUL_PREVIEW_ACCESS_TOKEN`
## Defaults
- If the user does not specify router type, default to Next.js App Router guidance.
- Use CDA host for normal delivery.
- Use `preview.contentful.com` and preview token when Draft Mode is enabled.
- Prefer an environment alias (for example `master`) as the client `environment` value to decouple runtime clients from release environment IDs.
- Keep Contentful client creation in a shared utility module.
## References
- [Next.js setup](references/nextjs-setup.md)
- [Preview and Draft Mode](references/preview-and-draft-mode.md)
- [Troubleshooting](references/troubleshooting.md)
© contentful · MIT · contentful/skills