MANTRA: three fast sites for individual residential developments instead of one heavy Tilda site
Three light sites for individual residential developments instead of one heavy one on Tilda: the home page HTML is 45 times smaller, and all three are built from one source.


The task
MANTRA is a Moscow interior design studio. Its main site, mantra-design.ru, is built on Tilda and talks about everything at once: portfolio, services, prices, team. The home page’s HTML alone weighs 1.3 MB, and the page pulls in 73 files from ten domains.
But the studio’s clients often search not for “interior design” in general but for a renovation in a particular building — “apartment design in the Opus residential development”. A general site answers such a query badly: it is not about that building, and it is heavy. The task was SEO: for every residential development where the studio works, a separate small site, entirely about that building and as fast as possible.
Republic — the first site of the family


One source — many sites
The sites are alike, but their content is unique. Templates, styles, scripts, fonts and the API live in a separate repository, mantra-kit. Each site is a standalone ProcessWire install with its own database, but all it has of its own is configuration, brand colours, logos and content. Everything else is linked in from the kit.
Linked as directories. Nine kit directories are mounted into a site as NTFS junctions. The files ProcessWire opens by exact path — init.php, ready.php and others — are stubs that load their body from the kit; .htaccess and the build files are copied and compared on every run. The linking script can be run any number of times: it leaves alone whatever is already linked correctly, saves the old version to a backup, and refuses to replace a directory with uncommitted changes.
A new residential development is a copy and content. Each section of the home page checks whether the site has content for it and silently skips the empty ones. So the same template works on a site with six sections and on one with nine.
Opus and Voxhall






opus-design.ru and voxhall-design.ru: the same kit, but their own building, their own layouts and their own content
How a site links to the kit
# link a site to the kit: once; running it again breaks nothing
.\kit-link.ps1 -Sites voxhall-design.osp
# junction: site directory → mantra-kit directory
# webroot\site\templates → templates\
# webroot\site\shared → site-shared\
# webroot\site\assets\fonts → fonts\
# webroot\api → api\
# frontend\src\js, src\svg, src\css\_core …
# the site’s own: site\config.php, frontend\src\css\_site\ (brand colours),
# site\assets\svg\logo-*.svg and the content in the database A change in the kit shows up at once on every linked site — so commits to it need care.
Speed
Light by design. No site builder and no third-party CDNs: every file of the home page loads from the site’s own domain — 11 to 29 requests against 73 on the main site, and the HTML weighs 28–31 KB instead of 1.3 MB.
The new kit build. CSS, JS and the SVG sprite are built in one pass; the file name carries a hash of the content, so the browser caches it for a year and never gets a stale version, and nothing is compiled on a visitor’s request. The fonts are cut down to Latin and Cyrillic and converted to woff2: from 387 KB to 114. The first-screen image is served as AVIF or WebP. opus-design.ru was the first to move to the new build.
Our own modules. The StaticPages static cache serves ready-made HTML without starting PHP or the database, and the OutputTransformer typographer sets the quotes and non-breaking spaces. Both are our ProcessWire modules, and they are linked into the sites the same way as the kit: a fix in a module reaches every site at once.


