Walk every site from first copy to final delivery through a structured 9-step process.
The Pipeline Panel occupies the bottom half of the main window. Each row represents one lead — a business whose site you copied during Lead Evaluation. Every row shows the business name, URL links, and a cell for each of the 9 pipeline steps.
Steps run independently per lead. You can have multiple leads at different stages simultaneously.
| # | Step | Trigger | What Happens |
|---|---|---|---|
| 1 | Demo | Manual | AI (Claude or Gemini) rebuilds the original downloaded site into a modern static site (HTML5 + CSS + GSAP). Opens a new terminal window where the AI works autonomously. |
| 2 | Copy Check 1 | Manual | Playwright opens the built demo site images in Google Lens to check for stock photos. Results are shown in a popup. |
| 3 | Host Demo | Manual | The built site in edited_sites/<slug>/ is deployed to Cloudflare Pages at <slug>.demos.yourdomain.net. Any .md files in the folder are encrypted and published to the shared client-docs viewer. |
| 4 | Cold Call | Manual | AI scrapes the original business website to extract phone numbers, email addresses, and social media links. Results shown in a popup and cached. |
| 5 | Form / Implement | Manual | You select a .txt file containing the client's form response. The AI reads it and applies the requested revisions. A site backup is automatically created after completion. |
| 6 | Copy Check 2 | Manual | Second stock photo audit after any client-requested image changes. |
| — | Iterate | Manual | Send further .txt revision instructions to the AI. Available after Form completes. Tracks revision count (v1, v2, …). Not a formal pipeline step — it re-triggers the Form flow. |
| 7 | Final Hosting | Manual | Publishes the approved site to the client's real Cloudflare domain (apex + www). Verifies the domain is a zone on your account, deploys to a <slug>-live project, and refuses to overwrite existing records unless you re-run to force. |
| 8 | Manual | Provisions a contact@<domain> mailbox on Purelymail and writes the MX / SPF / DKIM / DMARC / ownership DNS into the domain's Cloudflare zone. Requires PURELYMAIL_API_TOKEN. | |
| 9 | SEO | Manual | Opens a full multi-tab SEO suite (technical, local, AI/GEO, performance, keywords, report). The Enhancement tab can loop AI enhancement until all four categories score 100%. |
Each step cell shows a color-coded status:
| Status | Color | Meaning |
|---|---|---|
| Not Started | Grey | Step has not been started yet. |
| In Progress | Amber | Step is currently running (AI terminal open, deploy in progress, etc.). |
| Complete | Green | Step completed successfully. |
| Failed | Red | Step encountered an error. You can retry it. |
Click the Demo cell on any pipeline row to start. A dialog asks which AI model to use (defaulting to your Settings choice). Clicking OK does the following:
The app assembles a detailed prompt containing the downloaded site's file structure, any example sites in the same niche, and your instructions for the AI.
The prompt is written to a temporary .txt file in data/temp/ to avoid Windows command-length limits.
A new PowerShell window opens, changes directory to edited_sites/<slug>/, and runs claude --dangerously-skip-permissions --model <model> --effort <effort> $task.
Claude builds a complete static site in the site folder. This typically takes 3–10 minutes. You can watch progress in the terminal. The step turns green automatically when the terminal closes.
You can start Demo on multiple leads simultaneously — each gets its own terminal window. The pipeline tracks them independently.
After the Demo step is green, click Host Demo. This runs deploy-demo.ps1 silently in the background (no visible terminal). The step shows "deploying…" and turns green when the site is live. The demo URL (slug.demos.yourdomain.net) appears as a clickable link in the pipeline row.
Click Cold Call after the demo is hosted. The AI scrapes the business's original website and returns structured contact information in a popup. Each contact entry shows:
After the client has reviewed the demo and sent feedback (typically via a Google Form), click Form. A file picker opens — select a .txt file containing the client's response. The AI opens the edited site and applies the changes. A new terminal opens and Claude makes the revisions autonomously. When the terminal closes, a backup of the current site is automatically created at Site Backups/<slug>/Edition N/.
The ITERATE cell (positioned between Copy Check 2 and Final Hosting) unlocks after the Form step completes. Click Reiterate to send a further .txt revision file to the AI — this re-runs the Form flow with the new instructions and auto-increments the version counter shown in the cell (v1, v2, …). Each reiterate also triggers a new site backup.
Click SEO to open the SEO audit window. It scores the built site across four categories — Technical, Local SEO, AI/GEO readiness, and Performance — and the Enhancement tab's Enhance to 100% (loop) button repeats AI enhancement and re-audits until every category reaches 100% (capped by SEO_MAX_ITERATIONS). Example on-page checks include:
| Check | Pass Criteria |
|---|---|
| Title tag length | 30–60 characters |
| Meta description length | 70–160 characters |
| H1 count | Exactly one per page |
| H2 presence | At least one on pages with significant content |
| Image alt text | All <img> tags must have non-empty alt |
| Word count | At least 100 words on main content pages |
Each pipeline row has controls on the right side of Row 1:
| Control | Action |
|---|---|
| NOTES cell | Opens a free-text note popup for this lead. The cell highlights blue when a note has been written. |
| 📁 button | Opens edited_sites/<slug>/ in Windows Explorer. |
| Remove button | Removes the row from the pipeline. Files on disk are kept. |
| Delete button | Permanently removes the row and deletes edited_sites/<slug>/, downloaded_sites/<slug>/, and Site Backups/<slug>/ from disk. Shows a confirmation dialog listing all folders to be deleted. |
Row 2 shows three clickable URL labels: Original (the original business site), Demo (the Cloudflare Pages demo URL, filled after Host Demo), and Final (the client's permanent domain, filled after Final Hosting).