Website Development with MODX Revolution CMS
MODX Revolution is a flexible CMS without rigid template patterns. No preset themes, no mandatory structure. Developer controls everything: HTML, CSS, URL structure, content processing logic. Popular in Russian-speaking countries — especially among web studios developing corporate sites.
MODX Architecture
Resource (Resource) — any page: article, product, news, section.
Template (Template) — HTML wrapper with placeholders [[*field]].
TV-parameters — additional resource fields.
Chunks (Chunks) — reusable HTML blocks.
Snippets (Snippets) — PHP code returning content.
Plugins (Plugins) — system event handlers.
Typical Project Stack
MODX Revolution 3.x
├── PHP 8.1–8.3
├── MySQL 8.0+
├── Extras:
│ ├── pdoTools (high-performance snippets)
│ ├── migx (complex TV fields)
│ ├── Gallery / phpThumbOf (images)
│ ├── msearch2 / SimpleSearch (search)
│ ├── FormIt (forms)
│ └── FastTab (organize TV in panel)
└── Frontend: Vite + Tailwind CSS
Page Template
<!DOCTYPE html>
<html lang="[[++locale:default=`en`]]">
<head>
<meta charset="utf-8">
<title>[[*pagetitle]] — [[++site_name]]</title>
<meta name="description" content="[[*description:default=`[[++site_tagline]]`]]">
[[- SEO tags via pdoPage/Seosuite ]]
[[++seosuite_meta_output]]
<link rel="stylesheet" href="[[++assets_url]]css/app.css?v=[[++assets_version]]">
</head>
<body class="[[*template:is=`2`:then=`page--inner`:else=`page--home`]]">
[[- Header chunk ]]
[[$header]]
<main class="main-content">
[[*content]]
</main>
[[$footer]]
<script src="[[++assets_url]]js/app.js?v=[[++assets_version]]" defer></script>
</body>
</html>
Site Structure
Resource tree:
├── Homepage (template: home)
├── About (template: page-inner)
│ ├── Team
│ └── History
├── Services (template: services-list) [Container=1]
│ ├── Web Development (template: service-detail)
│ └── SEO Promotion (template: service-detail)
├── Blog (template: blog-list) [Container=1]
│ └── ... (articles)
└── Contacts (template: contacts)
Displaying Child Resources via pdoMenu/pdoResources
[[pdoResources?
&parents=`[[*id]]`
&tpl=`@INLINE <div class="service-card"><h3><a href="[[+uri]]">[[+pagetitle]]</a></h3><p>[[+introtext]]</p></div>`
&limit=`0`
&showHidden=`0`
&sortby=`menuindex`
]]
Forms via FormIt
[[!FormIt?
&hooks=`email,redirect`
&emailTo=`[email protected]`
&emailSubject=`Inquiry from [[+name]]`
&emailTpl=`emailTpl`
&redirectTo=`42`
&validate=`name:required:minLength=^2^,email:required:email,message:required`
]]
<form action="[[~[[*id]]]]" method="post">
[[!+fi.validation_error_message:notempty=`<p class="error">[[!+fi.validation_error_message]]</p>`]]
<input type="text" name="name" value="[[!+fi.name]]" placeholder="Name" required>
[[!+fi.error.name:notempty=`<span class="field-error">[[!+fi.error.name]]</span>`]]
<input type="email" name="email" value="[[!+fi.email]]" placeholder="Email" required>
<textarea name="message" rows="5">[[!+fi.message]]</textarea>
[[!+fi.recaptcha_html]]
<button type="submit">Send</button>
</form>
MODX Developer Advantages
- Full control over HTML (no imposed markup)
- Flexible URL structure without CMS limitations
- No overhead from unused functionality
- Simple debugging via
[[+output:dump]]
Timeline
Corporate site on MODX with custom templates, 8–15 pages, forms and filters — 3–5 weeks.







