A central team cannot police every brand and region
One system cannot fit every market. A global system that ignores regional needs is bypassed. A system that allows everything stops being a system.
Ownership is unclear across teams. Many teams use the system, few own a part of it, and decisions are made in meetings that leave no record.
Local components multiply. Products build their own versions of shared components. Nobody notices that three products built the same thing.
Adoption is hard to see. You cannot say how much of each product uses the system, or where it is bypassed.
Design and engineering see different systems. Each discipline has its own picture of what works and what does not.
Loom models the system the way your organisation works
Layers, each with an owner and a version
Each organisation defines its own layers, for example global brand → region → digital brand → product. Each layer has an owner, versions on its own and declares which versions of its parent it works with. Loom shows which layers a parent release would leave out of range. Working
Every rule says how far it can bend at lower layers: locked, extendable, overridable with a recorded reason, or a default to tune. A brand is a layer with its own theme: core components are shared, and each brand overrides brand tokens, illustration and voice within the lock levels.
What does not work yet: resolving tokens per brand layer with the source of each value shown.
What may a product team change? Stand in a layer and see.
Each rule is set at one layer and says how far it bends below it. Pick the layer you stand in, hover a rule to see where it comes from, and try a change. The organisation and its rules are sample data; layers are in design.
| Rule | Set by | Level |
|---|---|---|
| Text contrast of at least 4.5:1 | Global brand | Locked |
| Logo clear space | Global brand | Locked |
| Consent and privacy notices | Region: Europe | Locked |
| Colour palette | Global brand | Extendable |
| Spacing scale | Global brand | Overridable |
| Voice and tone | Digital brand: consumer | Extendable |
| Button corner radius | Digital brand: consumer | Default |
Governance your teams can read
Roles, rules, exceptions, proposals, patterns and deprecations are records in the repository, readable by people, tools and agents. A guild of three to seven people across design, engineering, content and accessibility owns the standard. Working
Exceptions are time-boxed, at most 90 days, and come back on their own when they expire. By default the area owner grants them, and a rule can name its own approver; accessibility exceptions always need the accessibility owner. Working
Regional variants without forks
A pattern sits in the core layer. A regional or product layer extends it within its lock level, for example adding phone sign-in to the core sign-in pattern for one region. Loom checks each composition against the resolved pattern. Working
Promotion on clear conditions
A component built for one product lives in that product's layer. It moves to a shared layer when it meets the definition of ready, an owner is named at the new layer, and design, engineering and accessibility sign off. Working
Adoption you can measure
The usage scan reads product code and reports system usage, raw values that bypass tokens and local copies of system components. Partial What does not work yet: one consumer folder per run, and no history yet. The four health measures (adoption, drift, flow, quality) show "not measured" where there is no source. Working
Where design and engineering disagree
In a discovery, each discipline answers the same questions in a team survey, encrypted to the consultant's key. The results show where design, engineering and product see the system differently. No group smaller than five people is shown on its own. Partial
Content and localisation as rules
Voice, terminology and banned phrases are rules, owned by a content designer and checked in interface copy. Working Localisation readiness is checked in part today. Partial What does not work yet: pseudo-localisation runs and per-locale text-expansion checks.
Layers, owners and locks are data
This is how Loom Base, our open-source system, records its own areas, owners, lock levels and what counts as a breaking change. A client system records the same things for each brand, region and product.
Governance as data: Loom Base
Status: proposed| Area | Scope | Owner | Agents may |
|---|---|---|---|
| foundations | tokens/** | base-core | suggest |
| components | contracts/*.contract.json | base-core | suggest |
| ai-patterns | contracts/ai-*.contract.json and 5 more | base-core | suggest |
| templates | templates/** | base-core | suggest |
- Contribution flow
- request → triage → draft → review → release
- Decisions a request can end in
- accept, accept-with-conditions, gather-evidence, keep-local, decline
- What counts as a major version
- remove or rename a component, prop, part, token or event
- change a default
- change a role, accessible-name source or keyboard behaviour
- Layers and locks
- locked, extendable, overridable, default. Build fails when a layer breaks a lock or drops a declared contrast pair below WCAG 2.2 AA.
packages/base/governance.json when this page is built. The file says its own status: proposed, not yet reviewed by the owner, and the area owner is a placeholder.See the whole organisation at once
Ops at a glance
Real screen, sample records
A system of systems
Sample data- Global brandOwner: Brand teamcore 3.1
- Region: EuropeOwner: EU design leadneeds core ^3.0
- Digital brand AOwner: Brand A leadneeds core ^3.0
- Checkout appOwner: Checkout squadneeds core ^3.0
- Account appOwner: Account squadneeds core ^2.4 · out of range
- Digital brand AOwner: Brand A leadneeds core ^3.0
- Region: AsiaOwner: APAC design leadneeds core ^3.0
- Digital brand BOwner: Brand B leadneeds core ^3.1
- Booking appOwner: Booking squadneeds core ^3.1
- Partner portalOwner: Partner squadneeds core ^3.0
- Digital brand BOwner: Brand B leadneeds core ^3.1
- Region: EuropeOwner: EU design leadneeds core ^3.0
A system, seen as cloth
Concept · sample data| Web app | iOS | Android | Marketing | Admin | |
|---|---|---|---|---|---|
| Actions | |||||
| Forms | |||||
| Navigation | |||||
| Feedback | |||||
| Overlays | |||||
| Data display | |||||
| AI patterns |
- Tightly woven 90+
- Holding together 75+
- Taking shape 60+
- Loose threads under 60
Navigation · Marketing · Loose threads
Tabs are re-implemented on three screens, each with its own spacing and focus style.
- The fix
- Swap the three local copies for the system Tabs; the visual result stays the same.
- Who decides
- Navigation owner
Seven loose threads
- Navigation · Marketing: Tabs are re-implemented on three screens, each with its own spacing and focus style.
- Overlays · iOS: LegacyModal is still used seven times, a year after it was deprecated.
- Data display · Admin: 23 raw colour values bypass the tokens in tables and charts.
- AI patterns · Android: Generated answers are not labelled as AI on two surfaces.
- Forms · Android: Select differs between code and the design library: different height and error text.
- Feedback · iOS: Toast stays for 2 seconds; its contract says 5 seconds for messages with an action.
- Overlays · Android: Dialog does not return focus to the button that opened it.
We show our own numbers
- Layer compatibility, review queues with delegates and time-boxed exceptions run today on governance records for our reference system and a synthetic second system, both labelled as sample. Working
- Strict scoring. Story Atelier, the design system of Seamline (a product from our own team), scored 59 out of 100, "Loose threads", on the same rubric we use for every client. After Loom's service it scores 83, "Holding together". Working That result is on our copy of the system, scored with Loom's own open rubric, and the founder has not yet accepted the records. Working
- Founded by Xavier Sorribas, a design-system and UX Ops leader.
Adoption is earned when every team knows what it may change, what it may not, and who to ask.
Questions
Who is Loom for? Organisations whose design teams have five or more people. Larger organisations with several brands, regions or products get the most from layers.
Do all products have to adopt at once? No. Layers version independently and declare compatibility, so products move when they are ready.
Can a product team break a rule? A team can break a rule it owns. The break is flagged. For rules owned elsewhere, the team asks for a time-boxed exception.
How do we start? With the health check, then a discovery: a guided health check, the audit, a team survey, a roadmap and a quote.