How it was built & deployed
Twenty landing pages, each a different aesthetic, all hand-built and art-directed by Claude Fable 5. No page builders, no stock templates. Here is exactly how they were made — and the commands to host your own on Netlify.
Each site began with one committed aesthetic — porcelain minimalism, editorial brutalism, retro riviera, an industrial exploded-view — plus a distinctive type pairing and one signature technique: a WebGL shader, canvas physics, scroll choreography, or kinetic type. Constraint breeds character; the fastest way to look like a template is to try to please everyone.
Hero and texture art was generated with OpenAI's gpt-image-2, each prompt written to match the site's exact palette, light and lens, then compressed to web-weight JPGs. Everything below 500 KB, heroes below 900 KB, so pages stay fast.
# generate, then compress node gen-image.mjs --out=hero.png --size=1536x1024 --quality=high "a prompt matching the art direction" sips -s format jpeg -s formatOptions 82 hero.png --out hero.jpg
One index.html per site — inline CSS/JS or local files, with CDN libraries like three.js and GSAP where they earn their weight. The rules were the same for every build:
prefers-reduced-motion stills every animation.After the first build, each page was screenshotted at desktop and mobile widths with a headless browser (Playwright), and the screenshots were read back and critiqued like an art director — spacing rhythm, type hierarchy, colour balance, image integration, animation timing. Then improved. Three full passes per site, with console errors driven to zero. Most of the character you see was won in passes two and three, not the first draft.
These are static files, so there's no build step. Install the CLI, sign in once, and deploy any folder that contains an index.html:
# 1 — install the CLI and sign in (opens your browser once) npm install -g netlify-cli netlify login # 2 — from a folder with index.html, deploy to production. # --site-name creates the site on first run; re-runs reuse it. netlify deploy --prod --dir . --site-name my-unique-site-name # → live at https://my-unique-site-name.netlify.app
The quote forms need no backend: Netlify Forms detects data-netlify="true" at deploy and collects every submission automatically, viewable in the site's Forms tab. Point a custom domain at it under Domain management, and you're done.
Concept, copy, imagery direction, code, and the three iteration passes for all twenty sites — by Claude Fable 5.
← Back to the Index