Start

How it was built

An AI writes the code. I bring the ideas and the criteria, test everything like a visitor would, and make the calls. Most decisions came out of the conversation.

The decision

The problem

One designer, a portfolio to rebuild, and no engineering team.

What I chose

Plain HTML, CSS and JavaScript, written by an AI (Claude Code) under rules I set, with every change argued before it ships and measured after.

Ruled out

A site builder, and any framework or build step. The site has to still open in ten years.

What it cost

Writing the rules down, and measuring everything. An assistant checks what it thought to check; the misses are where people land.

How a change happens

  1. I bring the idea or the problem, usually after using the site like a visitor would, on a laptop, a phone and an iPad.
  2. I propose a change or an improvement. The AI weighs in on what it would cost in time, complexity and code, and I decide.
  3. It measures before touching anything, builds in small commits, and sets a save point before any risky batch, so every decision can be rolled back on its own.
  4. It measures again after, and says what it did not verify.
  5. I test it. The bugs that mattered most were found this way, not by the sweeps.

More than 350 commits since June 2026, one stylesheet, no build step. Agents and scripts take the repetitive work; the judgement stays in the conversation.

The rules, written down

The project carries its own instructions, which the AI reads before every session. A few of them:

  • Never invent facts. Every metric, client, date and title comes from one source file, or it doesn't ship. This was broken twice early on, so it is treated as a live risk, not a formality.
  • Work under NDA shows no interface.
  • All copy in English, all code comments in Spanish.
  • Measure before changing, and after. Never measure something mid-animation: two wrong diagnoses came from measuring elements still on their way in.
  • When something is called verified, say what wasn't.

The tools

  • A measurement kit for the browser: every text against its real backdrop in both themes, translucency included; horizontal overflow from 320 to 2560 pixels; how a paragraph actually breaks; tokens closer than the eye can separate.
  • A style fingerprint: every computed style of every element, on 23 pages at two widths, before and after a change. Removing 688 lines of dead CSS changed nothing on screen, and the fingerprint proved it.
  • A narration script: it turns a post into the text a voice service will read, counts what it will bill and flags what gets mispronounced.
  • A publishing script: it packs only what is public, and refuses to finish if anything private slips in.

What a person catches

The highest-value bugs on this site came from using it, not from the sweeps. A few that I found:

  • The muted grey used for dates and labels failed contrast in 46 places on the home: 2.95:1. It is 4.60 now.
  • Typing "can you reply to ada@…?" when the contact assistant asked for an email: the question mark won, and the email was lost. Now the email is read first.
  • A tester answered the first question of the contact assistant and thought the message had gone. The step counter came back.
  • On an iPad in landscape, the decision cards of every case sat stacked, with no motion.
  • The hover pill spilled out of the chapter index of the cases.
  • The Madrid and Barcelona posters in the Amor de Barrio case were 8 pixels apart in height.