Get in touch
Gabs

Case study by Gabriel Espinheira, senior full-stack engineer

Taste Vault, where AI agents rebuild the designs I study

Agents turn a website I'm studying into a build prompt. A coding agent then rebuilds the page without seeing the original, to test whether the prompt holds the design.

In four weeks, in numbers

56

designs rebuilt from their own prompt

192,198

words of build prompts

802

issues the agents caught in their own rebuilds

125

commits from 13/09 to 11/10/2026

Counts from the vault and its repository on 12/10/2026.

The rebuild is the test

I treat a build prompt like code: it isn't finished until something checks it. Here the check is a coding agent rebuilding the page from the prompt, without the screenshot.

01

Capture

A screenshot, a URL or a right-click in Chrome adds a reference. Most are screenshots; a live URL gets headless Chrome, which photographs each section once it stops moving.

02

Read

The palette is measured from the pixels, and a live page's CSS gives up its fonts. A model then titles the design and tags it from a fixed list, so the vault can be searched by style, layout or section.

03

Prompt

An agent writes the build prompt: structure, spacing, type, colour in hex, motion, responsive rules and what to avoid. It has to carry the design on its own, because the next step never sees the screenshot.

04

Rebuild

GPT Image 2 makes any imagery first, from its own prompt with the original as a style reference. Then a coding agent builds a standalone page from the build prompt, without the screenshot.

05

Review

The agent opens its page at 1440, 768 and 390 pixels wide and checks for overflow, overlapping text, broken images and animations that never played. Then it fixes its own page.

06

Compare

The rebuild sits over the reference with a seam that wipes between them. When they differ, the prompt is fixed or the next build gets a written fix note, and earlier versions are kept to compare.

Two of the closest rebuilds

Taste Vault is a study tool, and the references are other designers' work. Drag across each pair: the layout and type come from the prompt, while each rebuild writes its own name and copy.

Rebuild: the same pavilion, lawn and evening light, a centred three-line serif headline and the new Evergold wordmark.
Reference: a lawn-care page with a pavilion on a lawn in evening light, a centred three-line serif headline and a script wordmark splitting the menu.
ReferenceRebuild

Lawn services hero, from a Pinterest pin. Claude Opus 5.5 rebuilt the centred serif headline and the split menu from the prompt, under the name Evergold.

Rebuild: a stone arch above the clouds, a two-tone green headline, a glass video card and a pill-shaped menu, renamed Spanwise.
Reference: a full-bleed landscape with a stone arch above the clouds, a two-tone green headline, a glass video card and a pill-shaped menu.
ReferenceRebuild

Landscape hero for a fictional AI company. Claude Opus 5 rebuilt the two-tone green headline and the glass video card from the prompt, under the name Spanwise.

47 rebuilds you can open

Here are 47 of the 56, each built by a coding agent from its prompt without seeing the original. The showcase puts every one next to its reference.

Six decisions, with their reasons

The code is private: 27,130 lines of TypeScript, not counting vendored code, and its main files open with the reasoning behind them. These are the six decisions I'd walk you through first.

A full page from real frames

Chromium's full-page screenshot stretches the window to the whole document, so full-height sections balloon and sticky headers repeat. One capture came back 32,000 pixels tall with the hero printed three times, so Taste Vault scrolls for real and stitches the tiles where they were taken.

Motion read off the live page

A separate page load tracks a few hundred elements half a screen at a time, and reads GSAP's ScrollTrigger registry when a site has one. The build prompt copies its timings from that record instead of inventing them.

One image at a time

Two image runs at once swap pictures, because the tool finds its output by diffing a folder of Codex sessions. After a bare lock file lost 17 images on 17/09/2026, a fair ticket queue took over, one picture at a time.

No API keys

Generation runs through the Claude Code and Codex CLIs already signed in on my machine, so it needs no API keys. GPT Image 2 comes the same way, through Codex on my ChatGPT subscription.

Nothing writable from the web

The public showcase is a static export: Server Actions are swapped for stubs and the API routes are set aside during the build, so no write path ships. Locally, the Chrome extension posts to an API on localhost that refuses any request with a web origin.

No analytics before consent

PostHog isn't even downloaded until you accept, so nothing is saved on your device or sent before then. Decline sits next to Accept at the same weight, and events from before your choice wait in memory and go out only if you accept.