THE ALTITUDE ATLAS — DRAWING SETSHEET 8 / 14

the DELIVERED CITY

ALTITUDE 1½ — what npm actually installs for one consumer · sample-app-lit-vanilla · 32 delivered packages, 176,451 lines of code and 41,786 d.ts lines on disk, footprint from files and height from lines — measured at origin/main @ eb1162da (2026-10-18), closure of apps/sample-app-lit-vanilla

registry-delivered — 27 packages workspace-linked — built dist/ the consumer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 the entire application: 11 files, 646 lines delivered for four imports: isEqual · cloneDeep · get · set 22,193 lines across 644 files one lit major stands in this city: lit 3.3.3, lit-html, lit-element and @lit/reactive-element — one copy each, held by scoped overrides SCALE — footprint area ∝ delivered files · 1 px of height ≈ 250 lines (sheet 7: ≈ 34) every number on this sheet is read from www/atlas.lit-ui-router.dev/data/census-nm.json — measured at origin/main @ eb1162da (2026-10-18), closure of apps/sample-app-lit-vanilla STRUCTURE SCHEDULE — delivered files (f) · lines of code on disk · d.ts lines 1 lodash-es 4.18.1 — 644f 22,193 2 hono 4.13.13 — 380f 25,081 · dts 7,703 3 @oxc-project/runtime 0.154.0 — 232f 5,198 4 @uirouter/core 6.1.2 — 162f 26,255 · dts 15,854 5 lit-html 3.3.3 — 120f 8,701 · dts 4,002 6 lit 3.3.3 — 77f 436 · dts 585 7 preact 10.4.8 — 61f 3,786 · dts 1,832 8 @lit/reactive-element 2.1.2 — 58f 4,084 · dts 2,682 9 @uirouter/dsr 1.2.0 — 45f 2,053 · dts 236 10 d3-hierarchy 2.0.0 — 35f 2,688 11 d3-interpolate 1.4.0 — 28f 1,219 12 lit-element 4.2.2 — 28f 471 · dts 616 13 @uirouter/sticky-states 1.5.1 — 18f 1,354 · dts 186 14 marked 4.3.0 — 16f 11,676 15 dompurify 3.4.16 — 12f 38,755 · dts 888 16 d3-color 3.1.0 — 8f 1,211 17 @lit-labs/ssr-dom-shim 1.6.0 — 7f 1,178 · dts 223 18 tslib 2.8.1 — 6f 1,363 · dts 499 19 @api-viewer/common 1.0.0-pre.10 — 6f 234 · dts 53 20 @api-viewer/docs 1.0.0-pre.10 — 5f 379 · dts 49 21 @uirouter/visualizer 7.2.1 — 3f 6,048 · dts 241 22 lit-dialog 2.0.1 — 4f 382 · dts 92 23 @api-viewer/tabs 1.0.0-pre.10 — 3f 316 · dts 53 24 custom-elements-manifest 2.1.0 — 0f 0 · dts 767 25 @types/marked 4.3.2 — 0f 0 · dts 650 26 @types/dompurify 2.4.0 — 0f 0 · dts 135 27 @types/trusted-types 2.0.7 — 0f 0 · dts 119 28 sample-app-shared (ws) — 53f 5,217 · dts 17 29 lit-ui-router 1.16.5 (ws) — 44f 3,286 · dts 3,070 30 ui-router-server 0.4.0 (ws) — 34f 2,132 · dts 1,040 31 sample-app-routes (ws) — 6f 622 32 ui-router-navigation-location-plugin 1.1.2 (ws) — 2f 133 · dts 194 33 sample-app-lit-vanilla (the app, src) — 11f 646 TOTAL — 32 delivered packages · 176,451 lines of code · 41,786 d.ts lines · measured at origin/main @ eb1162da (2026-10-18), closure of apps/sample-app-lit-vanilla
FIG. 8The production dependency closure of one sample app, surveyed on disk: every delivered package as a building — footprint from file count, height from lines — with the consumer’s own 646-line building standing in the city it summoned.

GENERAL NOTES

Method: the production closure of apps/sample-app-lit-vanilla (dependencies plus installed peers — pnpm auto-installs peers, so they are genuinely on disk), resolved through the pnpm store and measured as delivered: lines of .js/.ts/.css/.html per package directory, source maps and prose excluded, .d.ts drawn separately as the hatched annex. Workspace-linked members are measured by their built dist/ — the shape a registry install would deliver. Plenty of prior art measures this differently — bundlephobia and packagephobia weigh tarballs and install bytes, npmgraph draws the dependency graph — but this sheet measures what actually lands on disk, in files and lines, and stages it as a city with the consumer's own building standing in it for scale. Every count on the drawing and in these notes is read at build time from the plate www/atlas.lit-ui-router.dev/data/census-nm.json — measured at origin/main @ eb1162da (2026-10-18), closure of apps/sample-app-lit-vanilla — written after installing and building the ref itself, never the working tree. A package the drawing places that the plate does not carry, or a package the plate carries that no district draws, is a build error rather than a stale constant.

The consumer is a doormat in its own city. The app brings 646 lines of its own and receives 176,451 delivered lines of code plus 41,786 of type declarations — 273× its own mass. The router this repo exists to ship, lit-ui-router, delivers 3,286 lines over 44 files: one of the smaller buildings on the skyline it anchors, and 54× smaller than the city it stands in.

Four imports, 22,193 lines. lodash-es is delivered whole — 22,193 lines across 644 files — so the app can call isEqual, cloneDeep, get and set. The bundler tree-shakes almost all of it away, and sheet 9 charts what survives to the wire; the delivered city is the other measure, the one that installs, audits and updates. It is the fourth-tallest building here, behind dompurify, hono and @uirouter/core.

One lit, and a server in a client demo. Scoped pnpm overrides (@api-viewer/docs>lit, @api-viewer/common>lit, lit-dialog>lit → ^3.3.3) hold the demo chrome to one lit major, so lit, lit-html, lit-element and @lit/reactive-element each stand once in this city. The oddest building is hono at 25,081 lines: ui-router-server names it a peer, so peer auto-install delivers a server framework into a client demo.

Note the vertical scale: 1 px ≈ 250 lines against sheet 7's ≈ 34. Drawn at the workspace's own scale, lodash-es alone would stand 653 px tall — the compression is the finding.

KEY

delivered code — height = lines on disk
type declarations (d.ts) annex
lit-ui-router · the consumer
district (how it got here)
PROJECTTHE ALTITUDE ATLAS
SHEET TITLEthe DELIVERED CITY
SCALEONE CONSUMER
FORMDELIVERED CITY
CLIENTlit-ui-router · simshanith
DATE / REV2026-10-18 · D
DRAWN BYFable (Claude, AI)
SHEET8 OF 14