craft-cloud
Craft Cloud — Pixel & Tonic's serverless hosting platform for Craft CMS. Covers craft-cloud.yaml configuration, the Build →…
Craft CMS 5 content modeling — sections, entry types, fields, Matrix, relations, project config, and content architecture strategy. Covers choosing section types, designing entry types and field layouts, selecting field types, configuring Matrix and nested entries, relations and
Claude Code
$ npx -y skills add michtio/craftcms-claude-skills --skill craft-content-modeling --agent claude-code
Codex
$ npx skills add michtio/craftcms-claude-skills --skill craft-content-modeling -a codex -y
Cursor
$ npx skills add michtio/craftcms-claude-skills --skill craft-content-modeling -a cursor -y
Gemini CLI
$ npx skills add michtio/craftcms-claude-skills --skill craft-content-modeling -a gemini-cli -y
GitHub Copilot
$ npx skills add michtio/craftcms-claude-skills --skill craft-content-modeling -a github-copilot -y
OpenCode
$ npx skills add michtio/craftcms-claude-skills --skill craft-content-modeling -a opencode -y
Windsurf
$ npx skills add michtio/craftcms-claude-skills --skill craft-content-modeling -a windsurf -y
name: craft-content-modeling description: "Craft CMS 5 content modeling — sections, entry types, fields, Matrix, relations, project config, and content architecture strategy. Covers choosing section types, designing entry types and field layouts, selecting field types, configuring Matrix and nested entries, relations and eager loading, and multi-site propagation." when_to_use: "Triggers on: section types (single, channel, structure), entry types, field types, field layout design, field type selection, Matrix, nested entries, relatedTo, eager loading, .with()/.eagerly(), categories, tags, globals, global sets, preloadSingles, propagation, multi-site content, project config, YAML, project-config/write/diff/apply/touch, YAML vs DB drift, restored prod DB dump, content strategy, taxonomy, asset volumes, filesystems, image transforms, user groups, content permissions, entrify/entrification, CKEditor vs Matrix, CMS editions, multi-language/localization, field translation methods, content migration, field instances, Formie forms vs project config, cross-env/multi-site Formie, elementSources/Entries index sidebar, tableAttributes, defaultSort, authoring schema from code (service layer vs YAML). Always use when planning content architecture, creating sections/fields, configuring Matrix, setting up relations, choosing field types, designing field layouts, planning multi-site propagation, tidying the Entries element index, or running project-config commands. Do NOT trigger for PHP plugin/module development, custom field type code, front-end Twig, or buildchain."
How to structure content in Craft CMS 5. Sections, entry types, fields, Matrix, relations, asset management, and strategic patterns for real projects.
This skill covers **content architecture** — what goes in the CP, how it's organized, and how templates access it. For extending Craft with PHP (plugins, modules, custom element types), see the `craftcms` skill.
When this skill triggers, also load:
Use `WebFetch` on specific doc pages when a reference file doesn't cover enough detail.
**Everything is becoming an entry.** Entry types are global (shared across sections and Matrix fields). Fields come from a global pool. This is the "entrification" of Craft — categories, tags, and globals are being unified into entries over a three-version arc:
For **new projects**, always use entries: Structure sections for hierarchical taxonomy, Channel sections for flat taxonomy, Singles for site-wide settings. For **existing projects**, migrate at your own pace using the `entrify` commands.
Three decisions define your content architecture:
1. **Which section type** organizes the content (Single, Channel, Structure) 2. **Which entry types** define its shape (global, reusable across contexts) 3. **Which relation strategy** connects content together (Entries fields, Matrix, CKEditor nested entries, or a combination)
Craft CMS has four editions (Solo, Team, Pro, Enterprise) that affect content modeling. The key distinction: if any section needs multiple custom user groups with per-group edit/view restrictions, you need **Pro or Enterprise** (multiple custom user groups are Pro+ only). Team includes one fixed "Team" group whose permissions are customizable for non-admins, plus a 5-user cap. See `references/users-and-permissions.md` for the full editions table and permissions architecture.
Choose the edition before modeling — it determines whether you can scope content access by user group, which affects section and field architecture.
| Need | Section Type | URI Example | |------|-------------|-------------| | One-off page (homepage, about, contact) | **Single** | `__home__`, `about` | | Site-wide settings (footer, header config) | **Single** (no URI, `preloadSingles`) | — | | Flat collection (blog, news, events) | **Channel** | `blog/{slug}` | | Hierarchical pages (docs, services) | **Structure** | `{parent.uri}/{slug}` | | Taxonomy (topics, categories) | **Structure** (replaces categories) | `topics/{slug}` | | Flat tags | **Channel** (replaces tags) | — |
Beyond the type, sections have settings that matter for content architecture:
Production-ready Claude Code skills, agents, and project templates for Craft CMS 5 development. Built and maintained by michtio.
Craft Cloud — Pixel & Tonic's serverless hosting platform for Craft CMS. Covers craft-cloud.yaml configuration, the Build →…
fortrabbit (fortrabbit.com) — managed PHP hosting with a Craft CMS software template. Covers git push-to-deploy through the…
Garnish — Craft CMS's built-in JavaScript UI toolkit for the control panel. ALWAYS load when writing, editing, or reviewing…
Testing Craft CMS 5 plugins and modules with Pest — test isolation, database safety, and the markhuot/craft-pest-core harness.…
Craft CMS 5 PHP coding standards and conventions. ALWAYS load when writing, editing, reviewing, or discussing any PHP in a Craft…
Releasing Craft CMS plugins — tagging, Packagist propagation, GitHub releases, branch promotion, shared-library ordering, history…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.