Why we made the machine layer visible.
If a page has two readers — a person and a model — showing what the second one reads is not a preference; it is the evidence for the claim.
This site’s thesis fits in one sentence: sites that machines can see too. On 24 August 2026 that sentence became a button. A third switch entered the top strip — VIEW: HUMAN | MACHINE — and the MACHINE side opens a reading surface derived from the page’s own source. This article covers why that decision was taken, the two defects found along the way, and why one behaviour ended up with three different presentations.
The founding rule: not a single sentence is written on the surface
The easiest version of a machine view would have been a nicely hand-written technical summary. That was deliberately not built. The heading tree is derived from the page’s own headings, the schema lines from the real JSON-LD in the head, the language set from the link tags, the witness line from the strip at the foot of the page. Section labels are machine tokens rather than prose — they are not translated. There are no new components either: the box is the site’s existing terminal box, the line numbers its existing decoration, the layout the pattern of the mobile menu.
Content is printed as text, never as markup. A derived value cannot cause a markup accident; that is not a stylistic preference but a safety boundary.
Neither word on the switch was invented: HUMAN and MACHINE come from the approved subline of the hero — “A person reads and approves. A machine reads and recommends.” The switch is that sentence brought down into the interface.
No persistence, and there is a measured reason for it
The view is born HUMAN on every page. If MACHINE persisted, a visitor who flipped the switch by accident would keep seeing a broken page across the whole site. The second reason is the site’s own privacy text: this site does not write preferences to storage, and the day it does, that text starts lying. The guard measures this by delta rather than absolute zero — legitimate product keys such as the intro counter do exist, and what is measured is whether the view adds anything.
It works identically under reduced motion
The machine view is also built when reduced motion is preferred, and that is a deliberate distinction: this is not motion, it is a view of content. Denying the evidence for the claim to a visitor who turns motion off would be reading accessibility as a feature cut. The guard does not assume this; it measures that the line count is equal in both modes.
A side repair: the threshold had gone stale for the second time
When the third chip was added, 281 pixels of horizontal overflow were measured at a viewport width of 1024. The chip was then hidden and the measurement repeated: 122 pixels remained. So the overflow did not come from this round — the band between 1001 and 1339 was already overflowing. The threshold’s history reads like a textbook: the first measurement said “it does not fit at 850”, a threshold of 1000 was chosen, then the strip grew with content and nobody re-measured the band. The verification suite was looking at 1440 and at 390; the space between was a blind spot.
The threshold was pulled to 1340 by measurement, and the guard locked both directions: at 1340 the full strip with zero overflow, at 1339 the menu with zero overflow. A month later, when the switches turned from labelled rectangles into symbols, the strip gained 296 pixels and the threshold was measured again: the navigation fit without overflow down to 1014 pixels in Turkish, 940 in English and 936 in German. In other words, across the 326 pixels between 1014 and 1339 the navigation was being hidden while there was room for it. The threshold came down to 1080.
- width at which the nav fits without overflow
- Turkish 1014 px
- English 940 px
- German 936 px
- threshold at the time 1340 px
- dead band 326 px
A value that was written down but never applied
As the threshold dropped, the machine twin’s strip became far more visible and a defect surfaced: the twin’s navigation text sat at 4.24 to 1 against its ground, while the wordmark beside it sat at 16.78 to 1. On the same strip that gap reads as “the text has disappeared”. The 0.66 opacity written in the code was as old as the rule itself, but it had never been applied — the selector was looking for a span and the twin had become a link. Nobody had ever seen that value, so it cannot be called a design decision. The opacity went to 0.9 and the same strip measured 7.11 to 1.
One behaviour may have two presentations, never two surfaces
The machine view started as a modal: a layer covering the page. On two surfaces that turned out to be wrong. On the journal index the page already carries its own local machine layer; having the same switch open a second modal would mean giving one behaviour two surfaces — a marker on the root element now stands the general modal down and the switch drives the local layer instead. On the home page the modal collided with the concept itself: showing a machine reading does not require covering the page being read. There the view became an annotation layer sitting on top of the same DOM — heading labels, link addresses, image alt texts, section numbers, head and schema plates. Scrolling stays free and the layout does not change.
The honesty that only showed up in production
Verification after deployment showed something small but telling: running locally, the layer’s address line read LOCALHOST; in production it printed the site’s real address. The honesty of the derivation only became visible once it was live — had that line been a string, it would have said the same thing in both environments and proved nothing at all.
If a page has two readers, you owe both of them the same truth.