← Archive ‹› September 25, 2026Sep 25 Archived design. See today’s → How it was madeHow
Doug March

dougmar.ch

AI2026Designer & BuilderOngoingLive
Role
Designer & Builder
Year
2026
Timeline
Ongoing
Status
Live
Type
AI

Chad Fowler argues that once a machine writes the implementation, the architecture is whatever you cannot delete. He is writing about code. I wanted to know whether the argument holds when the thing being regenerated is visual design, where correct is a judgement rather than a test result.

Problem

A portfolio argues that you can design and build things, then sits unchanged for years, which quietly undercuts the argument. The decisions behind it are invisible, the process is hidden, and none of it is falsifiable.

Constraints

  • It redesigns itself unattended. Nothing may wait on me approving it before it ships.
  • A visitor arriving on a bad morning still has to be able to read the page and find the work.
  • Every past design has to survive exactly as it shipped, including the ones I would rather forget.
  • Every run costs tokens, so anything decidable by arithmetic should not be decided by a model.

Approach

Each morning a pipeline of Claude agents rebuilds the site from nothing. An art director reads the day's signals and writes a specification: a composition drawn from eight independent axes, a type and colour scale, the hero line, and whether the page carries a shell at all. A mockup designer renders that specification at full fidelity, an engineer rebuilds it as the real site, and two separate critics can send any of it back. What the agents may touch is enumerated in a list. The content files, this sentence included, are refused at the write layer.

Process

  1. Signals

    Reads nineteen sources: weather, air quality, the golf leaderboard, Hacker News, markets, the lunar phase, what I have been listening to.

    ProducesThe day's raw material

  2. Art Director

    Picks a composition from eight axes rather than a named layout, sets the tokens, writes the hero line, declares the shell.

    ProducesA specification

  3. Mockup Designer

    Builds the day's design as one self-contained HTML file, at full fidelity, before any React exists.

    ProducesA mockup

  4. Mockup critic

    Judges the mockup on its own terms and can demand a revision.

    ProducesA verdict

  5. React Engineer

    Rebuilds the mockup as the real site: routes, components and tokens, bound to the content files.

    ProducesThe site

  6. Build validation

    Scans the generated code, builds it, then smoke-checks the output for pages that compile and render blank.

    ProducesA shippable build, or a retry

  7. Screenshot critic

    Looks at the rendered page and judges what a visitor would actually see.

    ProducesThe last gate

  8. Archive

    Seals the day into the wayback machine, writes its record, and scores it against the previous seven builds.

    ProducesProvenance

Decisions

A composition grammar instead of named layouts

Eight named archetypes became a cage. The model kept reaching for the same three. Replacing the names with eight independent axes removed the vocabulary that was causing the repetition.

The uniqueness score is arithmetic, not a model

Asking a model whether today resembles last Tuesday costs tokens and answers differently each time. Hue distance, composition distance and shell novelty are cheap, deterministic, and do not flatter.

The archive is sealed, not re-rendered

A preserved design wearing tonight's stylesheet is a record of nothing. Each day is frozen as it shipped, with its outbound links rewritten so a visitor cannot leak out of the past.

The line between disposable and durable is a list, not a convention

One file enumerates what the pipeline may rewrite. Everything else is refused when it tries to write, rather than asked politely not to.

Outcome

Every design it has made is preserved exactly as it shipped, each with the brief that produced it and a score for how far it strays from the week before. The site is its own archive and its own evidence. The stack is TanStack Start in SPA mode, PandaCSS for tokens, and Vercel for hosting and CI.

References

Built with

  • TanStack Start
  • PandaCSS
  • TypeScript
  • Claude
  • GitHub Actions
  • Vercel

dougmar.ch

Archive · 145 designs