# modx-cms > Expert-level MODX Revolution CMS development, templating, and content management. Use this skill when building MODX websites, creating templates/chunks/snippets, configuring extras (pdoTools, MIGX, ClientConfig, SEO Suite, Image+, FormIt), writing MODX tag syntax, implementing schema markup, or troubleshooting MODX issues. Triggers include "MODX", "pdoResources", "pdoMenu", "MIGX", "ClientConfig", "FormIt", "Image+", "ImagePlus", "chunks", "snippets", "TVs", "template variables", or any MODX CMS development task. - Author: crecorn - Repository: crecorn/MODX-ClaudeSkill- - Version: 20251217214517 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/crecorn/MODX-ClaudeSkill- - Web: https://mule.run/skillshub/@@crecorn/MODX-ClaudeSkill-~modx-cms:20251217214517 --- --- name: modx-cms description: Expert-level MODX Revolution CMS development, templating, and content management. Use this skill when building MODX websites, creating templates/chunks/snippets, configuring extras (pdoTools, MIGX, ClientConfig, SEO Suite, Image+, FormIt), writing MODX tag syntax, implementing schema markup, or troubleshooting MODX issues. Triggers include "MODX", "pdoResources", "pdoMenu", "MIGX", "ClientConfig", "FormIt", "Image+", "ImagePlus", "chunks", "snippets", "TVs", "template variables", or any MODX CMS development task. --- # MODX CMS Development Expert guidance for MODX Revolution websites. ## Tag Syntax Quick Reference ``` [[SnippetName]] Cached snippet [[!SnippetName]] Uncached snippet (per-request) [[$ChunkName]] Chunk (HTML) [[*fieldname]] Resource field (pagetitle, content, alias, etc.) [[++settingKey]] System/Context setting [[~resourceId]] Link to resource [[+placeholder]] Placeholder from snippet/chunk ``` ### Output Modifiers ``` [[*pagetitle:striptags:limit=`60`]] [[*field:default=`fallback value`]] [[+date:strtotime:date=`%B %d, %Y`]] [[*content:nl2br]] ``` ### Parameters ``` [[SnippetName? ¶m=`value` &other=`[[*field]]`]] [[$ChunkName? &title=`[[*pagetitle]]` &class=`card`]] ``` ## Critical Syntax Rules 1. **Resource fields use asterisk**: `[[*pagetitle]]`, `[[*content]]`, `[[*alias]]` 2. **Placeholders use plus**: `[[+title]]`, `[[+idx]]`, `[[+wrapper]]` 3. **TV names must be single words**: `heroImage` not `hero_image` or `hero-image` 4. **Uncached (`!`) only when dynamic**: session data, user input, time-based 5. **Nested tags resolve inner-first**: `[[Snippet? &id=`[[*parent]]`]]` ## Core Extras Stack | Extra | Purpose | |-------|---------| | pdoTools | High-performance listings (pdoResources, pdoMenu, pdoCrumbs) | | MIGX | Repeatable content fields (FAQs, testimonials, galleries) | | ClientConfig | Site-wide settings (contact, social, branding) | | SEO Suite | Meta titles, descriptions, redirects | | Image+ | Visual image cropping with aspect ratio control | | FormIt | Form processing with validation and hooks | | modAI | AI-powered content generation | ## Common Patterns ### pdoResources Listing ``` [[pdoResources? &parents=`[[*id]]` &limit=`12` &tpl=`tplCard` &includeTVs=`heroImage,introText` &processTVs=`1` &tvPrefix=`` &sortby=`menuindex` &sortdir=`ASC` ]] ``` ### pdoMenu Navigation ``` [[pdoMenu? &parents=`0` &level=`2` &tplOuter=`@INLINE
` &tpl=`@INLINE