A line that will not wrap
Long text with wrapping forbidden runs past the edge, and a phone gets a sideways scroll.
The sitegen site pipeline · self-test rack
The needles are not a mock-up. They measure this very page in your browser, by the rules the pipeline uses before any site reaches a server. Flip a fault on the bench and watch a needle fall.
Open the pipeline portfolioModule 2 · faults from the lesson log
Each switch breaks the miniature page the way a real pipeline site once broke. The measurement is real. Turn the switch off and everything comes back.
Long text with wrapping forbidden runs past the edge, and a phone gets a sideways scroll.
Lighthouse scored accessibility 100, yet an independent check found captions that were hard to see. This text will become one.
Gallery dots so small a finger cannot hit them. The miniature's navigation shrinks to that size.
A script adds a block after load, with no space reserved. A second later the content jumps down.
The page is busy and does not answer. Every 2 seconds the thread really blocks for 180 ms.
The page will try to load a script from a foreign host. CSP refuses it, and a real error appears in your browser console.
This invented scrap of a site exists to be broken. The main page stays under your control.
The longest line of this sample wraps quietly until wrapping is forbidden, and then it runs far outside the frame of the bench.
Module 3 · chart recorder and counters
The recorder draws this page's readings once a second since you opened it. Marks on the tape are the switches you moved.
deploys
checks at the gates
lessons from errors
trap pages
deploys with an error on the live address
Snapshot of the deploys.jsonl log from 10 October to 4 November 2026, commit 5317d9b. A script counts these numbers, not a copywriter.
A lamp turns red when that gate would catch the fault you have on the bench right now. A page with that fault would not have left the pipeline.
sg.html4,693sg.csp4,789sg.cache21,574sg.safari7,120sg.files23,767sg.js1,061sg.i18n1,671sg.seo3,508sg.geo3,508sg.layout9,410sg.console2,390sg.motion614sg.touch352sg.hold680sg.go13sg.nogpu213sg.sticky1,476sg.lang664sg.slow502sg.webkit1,023sg.media620sg.lh732sg.a11y0Module 4 · construction
What you just saw on one page, the pipeline does to every site. Sites in the portfolio: 62.
Open the pipeline portfolio
A PerformanceObserver waits for the largest-contentful-paint entry: the moment the biggest first-screen element appeared in your browser.
sg.lhnone
The sum of layout-shift entries, minus those right after your own press. Turning a fault off resets the sum, because it only ever grows.
sg.lhnone
Longtask entries over the last 10 seconds: everything beyond 50 ms of each long task. This is a live likeness of Lighthouse TBT, not the full figure.
sg.lhnone
The transferSize of the document and every loaded file from Resource Timing. Cached files count at their compressed size.
sg.lhnone
Content width minus window width, for the page and for the bench separately. The same principle as the checks/browser.mjs gate.
sg.layoutnone
A walk over every visible element with its own text: the smallest computed font size. Lettering on the dials does not count, it is drawn.
none
For each text, the letter colour and the first opaque background under it are converted to L*, and the smallest difference is shown.
sg.a11ynone
The shorter side of the smallest visible button or link. The limit depends on the layout and is higher on a phone.
sg.lhnone