Brochure → live site in 3 hours
Turn a single marketing brochure (JPEG, PNG, HEIC, or PDF) plus 5–10 lines of locked brand decisions into a deployed single-page website at the customer's own domain — with a working contact form, Resend/SES transactional email, Cloudflare Email Routing inbound, and a numbered Chrome handoff for the parts the agent can't yet do. The mechanism is: brochure → locked PLAN.md → copy-paste CLAUDE_CODE_PROMPT.md → built site → numbered handoff. First proven on ballairaviation.com on 2026-05-06: ~3h04m of focused work, $0/year on top of the domain renewal.
“A locked plan + a paste-block + a single image is a tighter input contract than 'describe the website you want' — and faster than every WYSIWYG website builder.”
Receipts
Proven in production.
- Ballair / Fuel First / 7Air — operating-group brochure + allowlist admin + federal bid agent
Stood up the digital footprint for a three-entity aviation operating group: Fuel First International (fueling + bunker, CAGE 77SM4), Ballair Aviation Holdings (Boeing 767F + holding entities), and 7Air Cargo (three 737-800SFs, FAA Part 121, acquired May 2026). The deliverable is three layers: a public brochure at ballairaviation.com, a hard-allowlist admin dashboard for the operator, and an Anthropic-backed federal-bid drafting agent that scouts SAM.gov on the operating-group's real CAGE/UEI and drafts compliant bid sections without ever inventing a capability or auto-submitting.
- 3 federal entities under one ops surface
- 28 SAM.gov keyword-scope categories — one-click into live searches
When to use it
Trigger phrases.
Any of these in the user's prompt should invoke this skill in Claude Code.
- Make a website from this brochure
- Brochure to site
- PDF to website
- Same-day site from this image
- Flyer to landing page
- Partner sent me a brochure
- We need a quick web presence for [brand]
- Scan-this-and-build-it
What it needs
Required inputs.
- 01A brochure source image (JPEG / PNG / HEIC / PDF) with a wordmark, 3–10 service bullets, and at least one hero-worthy photo
- 025–10 locked brand decisions — color direction, font preference, nav style, email-handoff target, domain registrar
- 03The customer's domain name + registrar credentials (for the human-handoff DNS step until the registrar MCP lands)
The mechanism
Pipeline.
01 · Read the brochure
Multimodal extraction — copy and imagery from the same JPEG.
Open the brochure with the vision-capable model. Extract verbatim: wordmark text, tagline, service bullets, About paragraph, sampled color hex values from the dominant 3–5 colors, contact info. Inventory the photos visible in the brochure; note which one is hero-worthy. Output a structured brochure-extract object the next stage consumes.
02 · Lock the plan
Write a 200–300 line PLAN.md so the executor never re-prompts.
Convert the brochure-extract into a complete `PLAN.md` at the project root: decisions captured (table), visual design system (color tokens, typography, layout), site structure (single-page scroll, exact section list with brochure-sourced copy), tech stack (plain HTML + Tailwind + one serverless function — no framework), email pipeline (Cloudflare Email Routing + Resend), file layout (exact tree), build & deploy steps (phase-numbered Chrome execution checklist), pre-launch checklist, out-of-scope list. Every decision pre-resolved.
03 · Author the paste-block
Compress PLAN.md into a 100–150 line CLAUDE_CODE_PROMPT.md.
A self-contained paste-block: project root absolute path, brochure source image filename, every locked decision inline ('do not re-prompt me on these'), exact file layout, image-extraction sub-steps, email pipeline contract, explicit stop conditions ('do not deploy', 'do not push'), workflow steps, and the one-screen handoff format. This is the artifact the executor session reads end-to-end before writing a line of code.
04 · Execute the build
Fresh Claude Code session runs PLAN.md → working site in ~3 hours.
The executor reads the brochure image, extracts the hero + supporting frames via Pillow / ImageMagick, recreates the logo as a flat SVG (not a tracing — a clean two-tone wordmark + decorative element), builds 400–500 lines of hand-written HTML with all sections inline, writes 80–120 lines of `api/contact.js` Resend handler, compiles Tailwind to a static CSS file, initializes git, makes the first commit, and stops at the boundary it can't cross.
05 · Numbered handoff
8 ordered Chrome steps for the parts only a human (or the right MCP) can do.
GitHub repo + push → Vercel import + env var → DNS nameserver migration → Cloudflare Email Routing → Resend domain verify + API key → custom domain on Vercel + SSL → Gmail Send-As setup → smoke test (form submit, reply delivery, mail-tester ≥9/10). Each step has a one-paragraph instruction and a verification check.
What lets it fan out
Connector stack.
With all of these MCP connectors wired, the mechanism runs end-to-end without human handoff. Without them, the handoff is a numbered Chrome checklist.
Vercel MCP
AvailableSteps 2, 5, 6 — programmatic deploy, env-var management, custom domain attach.
GitHub MCP
NeededStep 1 — programmatic repo create + push + branch protection.
Cloudflare MCP
NeededSteps 3, 4 — add zone, change nameservers via API, enable Email Routing, add MX/TXT records.
Resend MCP (or REST API client)
NeededStep 5 — add domain, retrieve DNS records, verify, generate API key.
Registrar MCP (GoDaddy / Namecheap / CF Registrar)
NeededStep 3 — change nameservers from the customer's existing registrar to Cloudflare.
Gmail MCP
PartialStep 7 — Send-As configuration. Gmail MCP exists in this environment but doesn't expose the Settings → Accounts surface.
Email-delivery test MCP
NeededStep 8 — automate the mail-tester.com submission + score retrieval.
Guardrails
Stop conditions.
The skill is predictable because it refuses to expand its own scope.
- stopDon't expand to multi-page — single-page scroll only. If the brochure implies a blog or team page, stop and ask.
- stopDon't invent capabilities — if the brochure doesn't say 'FAA Part 121 certified', the copy can't say it either.
- stopDon't auto-purchase — no domain registrations, no paid SaaS, no exceeding free-tier without explicit confirmation.
- stopDon't push to remote without confirmation — `git init` and stage locally; ask before `git push`.
- stopDon't deploy without confirmation — print the Vercel import URL and wait.
Use this skill
Install + invoke.
The skill file is at og-gitclaw/zsty-us/blob/main/apps/zsty/.claude/skills/brochure-to-site/SKILL.md. Copy it to ~/.claude/skills/brochure-to-site/SKILL.md to make it user-global, or to <project-root>/.claude/skills/brochure-to-site/SKILL.md to make it project-local. Then trigger it with any of the phrases above in a Claude Code session.
The first proven instance is the locked PLAN.md from ballairaviation.com — 270 lines that produced a live brand site in ~3 hours.