
- MODX 3
- PHP 8.2
- Vue 3


Built-in blocks for pages in the MODX manager: pick a type, fill fields in the inspector, reorder blocks on the resource.
Every section in the tables below has a page: why to use the block, its fields, and similar alternatives.
The key (key) goes into the PageBuilder snippet and document JSON. Add custom types via the control panel (Pro) or plugin on pbOnRegisterSectionDefinitions.
| key | Section | Category | Requirements |
|---|---|---|---|
contact | Contact | conversion | — |
cta | Call to action | conversion | — |
faq | FAQ | content | — |
gallery | Gallery | media | authoring: Pro; runtime in Free |
hero | Hero | hero | — |
richtext | Rich text | content | — |
spacer | Spacer | layout | — |
stats | Stats | trust | — |
testimonials | Testimonials | trust | — |
video | Video | media | — |
| key | Section | Requirements |
|---|---|---|
cards | Cards | — |
image | Image | — |
| key | Section | Category | Requirements |
|---|---|---|---|
blog_posts | Blog posts | content | pro |
brands_row | Brands row | shop | pro, minishop3 |
categories_row | Categories row | shop | pro, minishop3 |
contact_form | Contact form | conversion | pro, FetchIt |
contact_map | Contact with map | conversion | pro |
curated_products | Curated products | shop | pro, minishop3 |
data_table | Data table | content | pro |
features | Features | content | pro |
gallery_carousel | Gallery carousel | media | pro |
logos | Partner logos | trust | pro |
map | Map | media | pro |
pricing_table | Pricing table | conversion | pro |
product_comparison | Product comparison | shop | pro, minishop3 |
product_spotlight | Product spotlight | shop | pro, minishop3 |
products_carousel | Products carousel | shop | pro, minishop3 |
products_grid | Products grid | shop | pro, minishop3 |
promo_banner | Promo banner | shop | pro, minishop3 |
quiz | Quiz | conversion | pro, FetchIt |
related_products | Related products | shop | pro, minishop3 |
spec_table | Spec table | content | pro |
structured_content | Structured content | content | pro |
tabs | Tabs | content | pro |
team | Team | trust | pro |
accordion | Accordion | content | pro |
before_after | Before / After | media | pro |
case_study | Case study | content | pro |
downloads | Downloads | content | pro |
dynamic_list | Dynamic list | content | pro, datasources |
filterable_grid | Filterable grid | content | pro, datasources |
form_builder | Form builder | conversion | pro, forms, FetchIt |
how_it_works | How it works | content | pro |
locations | Locations | content | pro |
media_split | Media + text | content | pro |
newsletter | Newsletter | conversion | pro |
notice | Notice | content | pro |
portfolio | Portfolio | content | pro |
quote | Quote | content | pro |
timeline | Timeline | content | pro |
Commerce sections require miniShop3. Without the package SectionRequirementChecker removes them from the catalog. Override the check via pbOnCheckSectionRequirement.
quiz and contact_form sections need FetchIt on the storefront (separate install).
Product sections (products_grid, product_spotlight, promo_banner) render via msProducts. Categories render via pdoResources with class msCategory.
Newsletter is an HTML form that posts to an external action_url. It is not FetchIt. Accordion renders <details> with no JavaScript. Form builder requires capability forms. Dynamic list and filterable grid require datasources. Those three types are part of the page context so the HTML cache does not freeze them.
Types that call runSnippet in the chunk (products_*, product_*, promo_banner, blog_posts, categories_row, data_table) are marked "cacheable": false. The document HTML cache does not freeze them.