Twenty-five sites,
one set of habits.
one set of habits.
This is the studio side: the admin you and your clients live in, the themes you own and deploy by tag, and the day-to-day of keeping a shelf of sites healthy. What an individual client site can do is next door, on the modules page.
Your theme. Your repo. Your tag.
Every site has its own theme repo. Push a git tag and that version turns up on the site's Theme tab; deploy it, look at it, activate it when the client has signed off. Earlier versions stay on disk untouched, so going back is a pointer flip rather than a rebuild. The platform underneath, the CMS and the modules and the security patches, is not on your plate at all.
Book a demo →
Six things you stop doing by hand.
None of this is a client-facing feature. It is the work that quietly eats a studio week: logging in somewhere else, explaining the editor again, chasing a deploy, wondering which site is on which version.
One login, every tenant
Pick a site and everything follows it: pages, media, menus, orders, statistics. People are added per site, so a client editor sees theirs and nothing else. An editor works in every module the site has on, from orders to the FAQ; settings, payment providers and users stay with an admin. Sign in with a passkey instead of a password, and when you need to reproduce what somebody is seeing, act as them, with both ends of that written to the audit log.
An editor you never have to teach
Clients edit the page they are looking at. Text goes in place, images and galleries open a small dialog, and a side panel lists every editable slot on that page with a filled or empty dot. Empty slots say what to do rather than collapsing to nothing. Slug, meta description, social image and robots sit in a settings drawer beside the copy, so the SEO fields are filled while the words are still fresh.
The theme stays yours
Twig templates and a Tailwind source file in a git repo you own, one per site, compiled for you on deploy. No bundler, no npm, no build to maintain. Any screen a module ships, from the product page to the invoice PDF and the form notification mail, can be overridden by dropping a file with the same name into your theme. Templates run sandboxed, so a theme cannot reach the database or the filesystem, and every script tag it writes is nonced for you.
Structure without a plugin
Pages are a tree you drag into order, with per-page templates. Menus are named and built per language, so the chrome is content rather than something hardcoded in a theme. Breadcrumbs follow the menu for pages and the category tree for products, from one call in the theme. Media is a library per site with folders. And a second language is a tab on the page you already have, not a duplicate page to keep in step.
The operations desk
Every form submission is logged per site, with the held-as-spam ones waiting in a review queue you can release. Statistics are first-party and visible to editors without another login. Back a site up and restore it on its own. Storage is broken out per site, down to media, video renditions, backups, attachments and each deployed theme version, so "what does this client cost us" has an answer.
Launch quietly, then loudly
A new site starts behind a coming-soon page for everyone not on your allow list, and hidden from search engines in the markup, the headers and robots.txt. Nothing half-built gets read or indexed. Switch both off when the client signs off. From there, alternate hostnames redirect to the canonical one.
The plugin stack you no longer maintain.
A shop with delivery zones and discounts, a blog, forms that hold their own against bots, consent and statistics: eighteen toggles per client, and a set of things every tenant simply has. That list lives on its own page.
See the modules →
See it running on your sites.
We'll mirror two of your existing sites into a sandbox tenant so you can poke around in 30 minutes.