the ATLAS, SHIPPED
APPENDIX · META — the atlas's own deploy as a shipped city on sheet 9's ruler, by role and by district, standing beside the docs deploy it draws · 290 files in eleven districts, 8.5 MB on the wire · measured at www/atlas @ 08a98096, outside the cabinet, which is main's (origin/main @ 3f55e419)
STRUCTURE SCHEDULE — files · gzipped wire bytes · largest tenant · role
| # | block | files | gzipped | largest tenant | tenant gzipped | role |
|---|---|---|---|---|---|---|
| 1 | demo payload | 143 | 1726 KB | — | — | sheet 9's 3 districts, summed |
| 2 | the documentation site | 1,572 | 6084 KB | — | — | sheet 9's 7 districts, summed |
| 3 | the routed apps | 56 | 400 KB | — | — | sheet 9's 5 districts, summed |
| 4 | the pictures | 168 | 4499 KB | — | — | 4 districts, summed · beside demo payload |
| 5 | the plates | 103 | 3026 KB | — | — | 3 districts, summed · beside the documentation site |
| 6 | the app and its lanes | 19 | 1172 KB | — | — | 4 districts, summed · beside the routed apps |
| 7 | html pages | 389 | 3668 KB | server-route-matching.html | 42.1 KB | the documentation site |
| 8 | markdown pages | 378 | 526 KB | llms-full.txt | 200 KB | the documentation site |
| 9 | examples | 36 | 1523 KB | model-viewer.js | 276 KB | demo payload |
| 10 | inter fonts | 16 | 849 KB | inter-italic-latin-ext.woff2 | 138 KB | the documentation site |
| 11 | page chunks | 756 | 722 KB | guides_server-route-matching.md.js | 26.0 KB | the documentation site |
| # | block | files | gzipped | largest tenant | tenant gzipped | role |
|---|---|---|---|---|---|---|
| 12 | images | 103 | 154 KB | lit-ui-router.png | 67.1 KB | demo payload |
| 13 | vp framework | 15 | 270 KB | @localSearchIndexroot.js | 147 KB | the documentation site |
| 14 | diagrams | 14 | 20.9 KB | about-this-site-architecture.svg | 3.4 KB | the documentation site |
| 15 | app: vanilla | 19 | 129 KB | api-docs.js | 28.2 KB | the routed apps |
| 16 | app: signals | 13 | 99 KB | api-docs.js | 28.2 KB | the routed apps |
| 17 | app: effect | 10 | 84.6 KB | index.js | 30.1 KB | the routed apps |
| 18 | app: mobx | 10 | 71.4 KB | decorate.js | 26.3 KB | the routed apps |
| 19 | app: hash | 4 | 16.5 KB | main.js | 8.3 KB | the routed apps |
| 20 | static data | 4 | 49.5 KB | messages.json | 46.6 KB | demo payload |
| 21 | site css | 4 | 29.0 KB | style.css | 21.3 KB | the documentation site |
TOTAL — the docs deploy 1,771 files · 8.0 MB gzipped at origin/main @ 3f55e419 · the atlas deploy 290 files · 8.5 MB gzipped at www/atlas @ 08a98096 · node:zlib gzip level 9
STRUCTURE SCHEDULE, EAST — the atlas deploy's districts
| # | block | files | gzipped | largest tenant | tenant gzipped | role |
|---|---|---|---|---|---|---|
| 22 | card pictures | 68 | 3663 KB | a2i-dark.webp | 209 KB | the pictures |
| 23 | routed pages | 39 | 1420 KB | index.html | 276 KB | the plates |
| 24 | model viewer | 8 | 854 KB | model-viewer.js | 282 KB | the app and its lanes |
| 25 | bare plates | 30 | 830 KB | index.html | 265 KB | the plates |
| 26 | plate fragments | 34 | 776 KB | a1.html | 261 KB | the plates |
| 27 | the routed app | 8 | 154 KB | index.js | 98 KB | the app and its lanes |
| 28 | models | 14 | 283 KB | bricks.glb | 89.4 KB | the pictures |
| 29 | cytoscape | 1 | 133 KB | cytoscape.esm.js | 133 KB | the app and its lanes |
| 30 | the share card | 3 | 467 KB | card.png | 353 KB | the pictures |
| 31 | icons | 83 | 86.2 KB | favicon.ico | 18.5 KB | the pictures |
| 32 | manifest | 2 | 31.0 KB | manifest.json | 30.7 KB | the app and its lanes |
THE WIRE — what is measured, what is seeded
| # | reading |
|---|---|
| 1 | every file under app/dist, raw and at gzip level 9: 24,222,276 raw bytes, 8,904,951 on the wire |
| 2 | reached from every page by reference, and seeded where the path is computed: sheets/ · images/ · manifest.json · _redirects |
| 3 | orphans: none — the walk reaches every file the deploy carries |
| 4 | the card pictures: 68 webp, two per plate (paper and cyanotype), 300×400 at 2× — 42% of the wire |
| 5 | the plates: 39 routed pages carry their fragments, 30 bare plates stand without the router, 34 fragments feed the client |
| 6 | the docs deploy: 1,771 files · 8.0 MB · 15 districts at origin/main @ 3f55e419, read from sheet 9's own plate |
GENERAL NOTES
Method — one ruler, two deploys, two altitudes. Every block on this plate is massed by SIDE() and HT() imported from sheet9.mjs — footprint side 10 · √files, floored at 18; height one pixel per 4,300 gzipped bytes, floored at 8, the constants read back off the functions themselves — and every file is weighed the way sheet 9 weighs it: raw bytes and gzip level 9, the honest wire measure, since the CDN serves compressed. The two halves stand on different grounds and say so. The docs deploy is data/, origin/main @ 3f55e419, the cabinet sheet 9 reads. The atlas is not on main, so it cannot be in that cabinet: it is data/, written by generator/ from a git archive of its own branch — www/atlas @ 08a98096, committed 2026-10-30 — in which the app is built by its own npm ci and npm run build, the vite build and the prerender, and app/ is measured file by file: 290 files, 23.1 MB on disk, 8.5 MB on the wire. That is what Cloudflare Pages serves at atlas.lit-ui-router.dev. A reachability walk from every page sorts the files into districts, and a path the app computes at runtime — a fragment by the manifest's file, the manifest by the router's base, the visualizer's icons by its stylesheet — is seeded rather than reported as a false orphan.
Two altitudes, one ruler. The sheet draws both deploys twice, at one scale: sheet 9's ruler drawn at 0.85×, the largest hundredth at which both rows fit 1,520 px with 8 px gaps and 140 px lettering slots.Along the top, by role: sheet 9's three roles of the docs deploy, read from its exported ROLES, each summed into one block, and three roles of the atlas deploy in the same order, each beside its counterpart — the pictures beside demo payload, the plates beside the documentation site, the app and its lanes beside the routed apps. Below, by district: every district of each deploy on its own lot, the docs deploy's fifteen west of the atlas's eleven. A role's block and a district's block are massed by the same two functions, so a block in either row reads against any other at the same altitude, and a role against its own districts. Summing is honest on this ruler for plan area — area ∝ files, so one block of a role's sum covers the same ground its districts do — and approximate for height, which reads a role's total bytes as one tower. The by-role totals reconcile each plate's own totals, every atlas district is claimed by exactly one role, and sheet 9 throws when a district on its plate is claimed by no role or two, so the two plates cannot disagree.
What the drawing says. The atlas deploy is 1.1× the docs deploy it draws, on the wire: 8.5 MB gzipped against 8.0 MB, in 290 files against 1,771; by role, the pictures 4499 KB against demo payload 1726 KB (2.6×) · the plates 3026 KB against the documentation site 6084 KB (0.5×) · the app and its lanes 1172 KB against the routed apps 400 KB (2.9×). The tallest district is card pictures, 3663 KB in 68 files — 1.0× the docs deploy's tallest, html pages at 3668 KB. The pictures are the whole story of the weight: a card picture is a webp, already compressed, so card pictures keep 99% of their raw bytes through gzip; the routed pages keep 21% — the lettering and markup of a deploy shrink on the wire and its pictures do not. The plates themselves ship in triplicate: every plate ships three times — inside its routed page, as a bare plate and as a fragment: 1420 KB + 830 KB + 776 KB — the routed page carries its plate server-rendered, the bare plate stands for a reader who opts out of the router, and the fragment feeds the client's own navigation. Below those, the 3D lane's viewer and its decoders, 854 KB, outweigh the routed app itself, 154 KB, 5.5 to 1, and no ghost district stands here: every file in the deploy is reached from a page, by reference or by a seeded path. Every claim in this paragraph is computed from the two plates and changes its wording when the plates change it.
What the pictures are for. The 68 card pictures are the cover's cards: one per plate in each theme, 300×400 CSS pixels drawn at 2×, so a card holds up on a retina display and the cyanotype theme has a picture of its own rather than an inverted one. They are 42% of the wire and arrive lazily, as the gallery scrolls; the first page a reader lands on is 276 KB at most, the heaviest routed page, and a plate's own page carries nothing of the pictures at all. The weight is real and the drawing shows it; whether it is the right weight is a question for the cover, not for this ruler.
KEY
| a block of the docs deploy — a role summed, by role; one district, by district — footprint ∝ files, height ∝ gzipped bytes | |
| a block of the atlas deploy — the same rule, on its own branch | |
| the ruler is sheet 9's, read back off its SIDE() and HT(): side = 10 · √files, floored at 18; 1 px of height ≈ 4.2 KB gzipped, floored at 8; drawn at 0.85× that ruler, the largest hundredth at which both rows fit 1,520 px with 8 px gaps and 140 px lettering slots | |
| a deploy's frame, by district | |
| the seam between main's ground and the atlas's |