Tiebreak — in-house platform
2025
Headless Multisite
One CMS instance serving many brand sites as data, where each theme declares its own admin surface in a single config file.
Delivered to
Internal — publishing platform
Tiebreak multisite
Core
WordPress multisite, headless
Delivery: Content as a read API
Techniques
3
3 constants, formulas and guards
The publishing substrate beneath a portfolio of brand sites. Rather than giving every brand its own content system — and every editor a different admin to learn — one multisite instance serves them all, exposing content as data for the static front ends to consume. It is the least visually interesting thing in this section and the reason several of the others could be built the way they were.
Internal — not public
Internal publishing infrastructure. No public address, and no host or endpoint appears on this page.
One editing surface underneath a shelf of brand sites.
What was built, and for whom.
Tiebreak multisite
Internal — publishing platform
en
One instance, many sites, each theme declaring its own admin surface and API exposure through a single config file.
Each one starts with something that was broken.
- 01
A theme declares its own admin surface
The failure
Multisite installs drift: each site accumulates its own plugin soup and hand-tuned admin, and after a year no two are configured alike. Onboarding an editor becomes site-specific, and so does every fix.
The decision
Give each theme one config file that states what it is and how it should behave — its label, its admin icon, whether its content is exposed on the API, which editor it uses, and whether it participates in shared content. Configuration lives with the theme it configures, so adding a site is adding a file rather than clicking through an admin.
- constantREADME.md
tiebreak.config.json — title, icon, api_route, editor mode, global_content
- 02
The block editor is opt-in, not the default
The failure
A block editor lets an editor build layout, which sounds like empowerment and behaves like erosion: a headless front end renders from structured fields, and every layout decision made in the CMS is a decision the design system cannot honour or a block of markup it has to accept unseen.
The decision
Default the rich editor off and let a theme turn it on when it genuinely wants free-form content. Structured content stays structured, the front end keeps rendering from fields it understands, and the design system stays the only place layout is decided.
- constantREADME.md
Editor mode is a per-theme flag, defaulting off
What it cost
Editors lose the ability to improvise layout, which some of them want. That is the point rather than a side effect, and on a multi-brand platform it is the difference between a design system and a suggestion.
- 03
Content that belongs to every site lives once
The failure
Legal text, risk warnings and shared boilerplate appear on every brand site and change for all of them at once. Copied per site, they are copied wrong within one revision.
The decision
Make shared content a first-class capability of the platform that a theme opts into, so the text that must be identical everywhere is stored once and consumed by each site — the same argument the individual brand sites make internally with their own config modules, made one level up.
- constantREADME.md
global_content — a per-theme flag for participating in shared content
What it was built on, what is claimed, and what is not.
Core
WordPress multisite, headless
Chosen for the editor, not the renderer. Editors already know it; nothing it renders is ever served to a visitor.
Delivery
Content as a read API
The front ends are static sites that consume content. The CMS never handles a visitor request.
Config
One JSON file per theme
A theme declares its own title, admin icon, API exposure, editor mode and global-content behaviour. See the technique.
Local
Containerised dev environment
The whole stack — web server, database, admin tooling — comes up identically on any machine, which is the only way a platform gets handed over.
Claimed — and how to check it
Each theme configures itself through a single JSON file
The config contract documented in the repository README.
The block editor is a per-theme flag that defaults off
The same config contract.
Shared content is a platform capability a theme opts into
The global content flag in the config contract.
Not claimed
- No list of which sites run on it, no traffic figure, no uptime claim.
- No host, endpoint or credential — none appears on this page.
- No claim over WordPress itself. What is claimed is the configuration contract layered on top of it.
- No security claim. It is internal infrastructure and was not audited as part of this work.
Read from the repository's own platform documentation. No host, endpoint, credential or site list appears on this page.