Recent Updates
The latest changes to the All-In-One Application and its pipeline.
June 2026 — Going Live: Final Hosting, Email & SEO-to-100%
- The pipeline is now 9 steps. A new Email step sits between Final Hosting and SEO. See the Pipeline Steps Reference.
- Final Hosting is a real go-live action. The old “Mark Hosted” placeholder is replaced by
FinalHostWorker / tools/host-final.ps1: it verifies the domain is a zone on your Cloudflare account, deploys to a <slug>-live Pages project, binds apex + www, and refuses to overwrite existing records unless you re-run to force.
- Email provisioning (Purelymail). The Email step creates a
contact@<domain> mailbox and writes the MX / SPF / DKIM / DMARC / ownership DNS into the domain’s Cloudflare zone. Requires the new PURELYMAIL_API_TOKEN (Settings → API Keys).
- Contact-form relay. Generated sites post their contact forms to a Cloudflare Pages worker that relays over Purelymail SMTP to the contact mailbox (honeypot + fill-time spam protection, with a
mailto: fallback). No third-party form service.
- SEO “Enhance to 100%” goal loop. The SEO window can repeat AI enhancement and re-audit until all four categories — Technical, Local, AI/GEO, Performance — score 100% (capped by
SEO_MAX_ITERATIONS). The deterministic audit is the success check.
Architecture & UI
- Core decoupled from PyQt. Background workers are now plain threads with callbacks, shared by both the PyQt desktop app and a new Textual TUI (a terminal-only fallback). The TUI branch was merged into
main, so one codebase carries both UIs.
- New stdlib clients.
core/cloudflare_api.py (zone lookup + idempotent DNS upsert) and core/purelymail_client.py (domains + mailboxes) — no new dependencies.
- PyQt GUI-thread bridge.
ui/qt_bridge.py marshals decoupled-worker callbacks onto the GUI thread so the desktop app stays responsive and crash-free.
- Settings. Added the Purelymail API Token field and an “SEO loop max iterations” control.
Documentation