Gate 07 · Cleared

COLD OPEN

An engine that builds artist sites as named worlds rather than templates — and that cannot print a number it has not read from a source. One blind judge was shown its output in a lineup of four hand-built sites and asked to find the generated one. It picked a hand-built site, and ranked the generated one the most hand-made of the five.

2
Sites live
0
Unsourced figures
1 of 5
Most hand-made · one blind judge

The problem

Generated websites read as generated. Not because the layout is wrong — because nothing was decided. A model asked for "a website for an artist" produces the median of every website it has seen, and the median is a hedge: a safe ground colour, a stock hero, a headline that could belong to anyone, and statistics that sound plausible because nobody checked them.

The sites that work do not start from layout. They start from a name. KMoney's is The Vault. 100BandPlan's is a classified mission file. SAVV4X's is Problem Child. Once the world has a name, the type, the colour, the motion and even the section labels fall out of it. That is the whole thesis: name the world, derive the design.

The decision that matters

The failure mode of any generator pointed at a public page is not ugliness. It is a confident number nobody verified. So provenance is not a convention here — it is enforced by the type system. A fact cannot be constructed without the URL it was read from and the date it was read:

new Fact({ value: 344_466 })
//        ^ UnsourcedFactError: a figure needs the page it came from

new Fact({ value: 344_466,
           sourceUrl: 'https://open.spotify.com/artist/…',
           verifiedAt: '2026-07-02' })            // ✓ builds

A claim that is believed but cannot be sourced is sealed. It is not quietly dropped and it is not invented — it renders on the page as a redaction bar, so the gap is visible.

"A human refusing to fake a number." The blind judge, on the redaction bar, before knowing which site was generated

Reading the colour instead of choosing it

A palette picked by taste is a palette picked from the median. So the engine samples the artist's own release artwork and proposes the hue their work is already drenched in, cited to the single record it came from.

The COLD OPEN studio showing a sampled palette: hex E6CB0A on a near-black ground, cited to the Sip Cuca single at 80 percent of usable pixels, with four alternates and the ten covers that were decoded.

Sampling ten covers: #E6CB0A, cited to Sip Cuca at 80% of usable pixels.

The first version of that sampler averaged hues across the whole catalogue and proposed a colour holding 19% of pixels, while individual covers sat at 68% and 71%. Averaging a catalogue is taking a median — the exact failure the feature existed to prevent, reproduced by the code written to prevent it. Ranking by how hard a single cover commits to a hue fixed it.

What the engine refuses

Proof, not demo

Two sites in production, both mine. shortiieraw.com was generated by the engine. 100bandplan.com I hand-built — the engine did not make that site, which is the harder case: it read the existing world, patched a new release into that site's own vocabulary, and proved it had not broken the markup before it wrote anything.

The bar was set as a blind A/B: a fresh judge, with no idea which site was which, asked to pick the generated one. It ran once, on 2026-08-21. The judge picked savv4x.com, which is hand-built, at 70% confidence, and ranked the generated site first of the five for looking hand-made. One judge, one round, one viewport; the write-up lists what that does not cover.

What it still cannot do

Written plainly, because a tool that oversells itself costs more than it saves.

Read the source ↗ See what it generated ↗ Back to the work