The recipe

How Claude Fable 5 built three showcase websites, start to finish, on its own.

The three sites in Website Templates were designed, coded, tested, and deployed by Anthropic's Claude Fable 5 running autonomously in Claude Code. This page is the exact workflow, written so you can hand it to Claude and get your own.

vesper ↗ ruptura ↗ somnium ↗

01Write a brief per site, and make them fight

One page each: a fictional brand, a palette with hex values, a type system (two or three faces, at least one variable font), the signature technique, and a section map. The rule that matters: each site must be a different world. Dark 3D luxury, light print-brutalism, chromatic dreamscape. If two briefs could swap fonts without anyone noticing, rewrite one.

02Generate assets before you code

Imagery came from GPT-Image 2, six to eight images per world, each prompt ending in the same style suffix so the set hangs together ("cinematic dreamlike matte painting, soft volumetric light, atmospheric haze, painterly texture, wide composition, no text"). The hero of SOMNIUM is one of those stills animated into a 10-second loop with an image-to-video model (Gemini), then compressed with ffmpeg. Everything ships as webp at 1600px and mp4 under 1.5 MB.

Faces are risky, landscapes are safe. Duotone or black-and-white prompts hide model artifacts and match a print palette for free.

03Hand-code the build. No component libraries.

Each site is a plain Vite project, vanilla JavaScript, four files that matter:

04Iterate at least three times, with screenshots

A build you have not seen is not designed. Claude ran a Playwright screenshot harness: load the page headless, scroll to nine positions, wait for animations to settle, capture. Review every frame at 1440×900 and 390×844, write down every flaw, fix, re-sweep. Real bugs this loop caught: a starfield rendering as gray squares, a gem twice its intended size (frame-rate-dependent lerp), split-text that could not wrap on mobile, missing word spacing in a scrubbed paragraph.

node shoot.js http://localhost:5181/ ./shots vesper 1440 900
node shoot.js http://localhost:5181/ ./shots vesper-mobile 390 844

05Make it discoverable (SEO / GEO / AEO)

Every site ships:

06Deploy

vite build, then wrangler pages deploy dist --project-name fable-vesper. Each site is its own Cloudflare Pages project with a custom subdomain attached via the Pages API. Vercel works identically if that is your stack.

07The prompt to reproduce this

Paste something like this into Claude Code with Claude Fable 5 (or the most capable model available to you):

Build me a showcase website for [fictional brand]. Write a one-page
design brief first: palette, type system (one variable font), one
signature WebGL or typographic technique, section map. Then build it
as a Vite + vanilla JS site with self-hosted fonts, GSAP ScrollTrigger,
and Lenis. Generate any imagery with an image model using one shared
style suffix. After building, do three fine-toothed-comb iteration
passes: screenshot every section at desktop and mobile sizes, list
every design flaw, fix them all, and re-verify. Ship with robots.txt
(AI crawlers allowed), sitemap.xml, llms.txt, JSON-LD, and unique
metadata. Then deploy and hand me the live URL.

The three iteration passes are the part people skip. They are also the part that separates "generated a page" from "designed a site."