This site is built from Loom Site, its own design system, governed by Loom. What we do for your system, we do for our own site first.
Loom Site defines reusable elements with typed render functions and contracts. The build checks page composition, rules, copy and localisation. The figures below are computed on each build. Class ownership measures where registered styles are used; it does not prove that every caller uses a registered render function.
The numbers
| Measure | Value | Command |
|---|---|---|
| Elements | 134, of which Loom's audit reads 83 components (the atoms, molecules, organisms and templates) and 2114 tokens | npm run site:system |
| Contract completeness (20 points per element) | 94.7% (no element is mapped to Figma yet) | tsx scripts/site/system/check.ts |
| Rendered class uses owned by the system | 99.2% (30.2% before Loom Site) | tsx scripts/site/system/check.ts |
| Pages that follow their declaration | 74 / 74 | tsx scripts/site/system/check-pages.ts |
| Loom's audit of Loom Site | 75/100, Holding together, 30 Oct 2026 | npm run site:audit |
| Decisions and exceptions on record | 24 | apps/showcase/site/loom/decisions |
| Content rules enforced | 21 (17 blocking, 4 reporting) | npm run site:copy -- --strict |
Rules every page follows
- D-SITE-002: A field is always followed by cotton; two fields never touch
- D-SITE-003: The woven edge sits at every field/cotton join, and nowhere else
- D-SITE-005: One padding per template
- D-SITE-006: Numbering only for the job sequence
- D-SITE-007: One caption, with an honesty variant
- D-SITE-008: One ShowcaseFrame for every self-playing element
- D-SITE-017: The site's content rules are enforced
How the parts form a page
Inspect the actual foundations, tokens, components and templates below. Each layer links to its contract; the rendered specimens use those same elements.
- Foundations
The decisions that give the system its character and limits.
Colour ↗From the actual implementation / contract
cotton- Page ground
ink- Text, rules, primary button
teal- See · the UX Ops lead · the Academy · articles · holding together
- Tokens
Named roles for colour, type, space and motion. Change the source once.
Component tokens ↗From the actual implementation / contract
color.palette.greige.900Base primitivecolor.text.default → --inkSemantic role · light mode--identity-sticker-inkComponent alias
- Atoms
Small reusable elements with their own states, rules and accessibility.
Button ↗From the actual implementation / contract
Inspect Button - Molecules
Elements working together for one focused task.
Call to action pair ↗From the actual implementation / contract
- Organisms
A complete section of interface, composed from smaller elements.
Header ↗From the actual implementation / contract
View the rendered specimen
Static specimen. Inspect the contract for its interaction requirements.
- Templates
Layout and content slots that establish a repeatable page structure.
Hero ↗From the actual implementation / contract
View the rendered specimen
Static specimen. Inspect the contract for its interaction requirements.
The next level of your design system.
Loom turns the system you have, or the one you are missing, into clear, governed decisions that your teams and your AI tools follow. Your product keeps its look. Your people stay in control, with expert help and agents doing the routine work.
jobsTitle- The owner-approved line above the jobs band (See it. Shape it. Govern it. Run it.).
title· required- The headline (owner-approved).
lede· required- The promise.
actions· required- The CtaPair.
live- The Drift hero panel.
jobs· required- The four jobs band.
- Pages
Templates composed with real content and a checked sequence.
Landing page ↗From the actual implementation / contract
herorequiredproblem-sectionoptionallead-sectionoptionalflow-sectionoptionaljob-sectionoptional · repeatableproof-sectionoptional · repeatableroles-sectionoptionalfounder-sectionoptionalroadmap-stripoptionalcta-sectionrequired
Smaller elements compose into larger structures. Dependencies can skip levels: a template can use a button directly. These are composition levels, separate from organisation and brand inheritance.
Actual composition dependencies
headerlogo·language-switch·button·arrow-link·iconheroheading·text·cta-pair·drift-hero·jobs-strip·tile·dye-field
A separate model: the operating sequence
The source field guide also describes five stages of work. These describe how a decision becomes action; they are separate from component composition and brand inheritance.
- SignalObserve a specific need or discrepancy.
- PatternIdentify what recurs across those observations.
- DecisionRecord the chosen response and its reason.
- RuleDefine the constraint that future work follows.
- ActionApply the decision and check the outcome.
What Loom's audit says about Loom Site
Loom's audit of Loom Site: 75/100, Holding together, 30 Oct 2026. The same run feeds the governance view. Every recorded run, oldest first, with what changed:
- 46/100 (Loose threads), 26 Oct 2026, 10:50 UTC
First audit, on the day Loom Site was registered. Its tokens held raw values, and no element had a story or a test yet. - 49/100 (Loose threads), 26 Oct 2026, 12:25 UTC
The tokens now point to Loom Base's palette instead of holding raw values, and the audit read how the site builder uses the system. - 72/100 (Taking shape), 26 Oct 2026, 13:46 UTC
Most of this jump came from the audit, not the site: Loom's audit learnt to read a system's governance records (owners, decisions, changelog) and its per-element stories, which the site already had. The site itself added a high-contrast mode and written instructions for agents. - 73/100 (Taking shape), 26 Oct 2026, 15:05 UTC
The audit now counts an element placed by its render function as a use of the system, so adoption is measured properly. This run was recorded in a working copy; a clean copy of the repository could not reproduce it at the time (see the next run). - 73/100 (Taking shape), 26 Oct 2026, 19:01 UTC
The same score, recorded from a clean copy of the repository, so anyone can reproduce it. - 73/100 (Taking shape), 27 Oct 2026, 10:12 UTC
- 72/100 (Taking shape), 27 Oct 2026, 12:45 UTC
- 74/100 (Taking shape), 27 Oct 2026, 12:53 UTC
- 74/100 (Taking shape), 27 Oct 2026, 12:58 UTC
- 74/100 (Taking shape), 27 Oct 2026, 13:13 UTC
- 74/100 (Taking shape), 27 Oct 2026, 13:16 UTC
- 74/100 (Taking shape), 27 Oct 2026, 13:24 UTC
- 73/100 (Taking shape), 29 Oct 2026, 05:15 UTC
- 74/100 (Taking shape), 29 Oct 2026, 05:48 UTC
- 75/100 (Holding together), 29 Oct 2026, 08:20 UTC
- 75/100 (Holding together), 30 Oct 2026, 11:30 UTC
- 75/100 (Holding together), 30 Oct 2026, 11:52 UTC
- 75/100 (Holding together), 30 Oct 2026, 12:24 UTC
- 75/100 (Holding together), 30 Oct 2026, 12:30 UTC
- 75/100 (Holding together), 30 Oct 2026, 12:40 UTC
- 75/100 (Holding together), 30 Oct 2026, 13:05 UTC
What the latest run found:
- Loom Site: 75/100 for structure, governance and use: Holding together.
- 9 of 9 components identified as interactive have no matching keyboard/focus test in the supplied inputs
- 11.0 system bypasses per 1,000 lines of consumer code
- Layer model (system of systems): absent
- 30 colour values defined more than once under different names
- 7 of 1816 semantic/component tokens hold literals instead of aliasing a lower tier