Capabilities in depth

Seven things this does, in detail.

Every claim below was read out of the engine, not written by marketing. Where something is a starting point rather than a guarantee, it says so.

Capabilities
7
Delivered page
Static HTML
Tracking
Consent-gated

Generation

A brief in, a whole page out

One planner call drafts the section structure and every line of copy, then checks itself against a fixed registry before anything is saved.

  • Four fields is the whole input — offer, audience, language, goal
  • Output validated against the section registry, re-asked up to twice on a miss
  • A deterministic starter runs when the model is unavailable — you always get a page
  • 21 section types to draw from, including comparison, calculator and before-after

Brief → validated sections

  • offer
  • audience
  • language
  • goal
  • hero-formvalid
  • benefitsvalid
  • offervalid
  • comparisonvalid
  • guaranteevalid
  • faqvalid
  • cta-bandvalid

Publishing

Zero-hydration HTML at the edge

Sections are authored in React and rendered to markup at publish time. The framework stays on our side of the wire.

  • Rendered with renderToStaticMarkup — no hydration step exists
  • Stored in R2, served by a Cloudflare Worker on your own hostname
  • Photography is downloaded and served first-party, deduped by content hash, never hotlinked
  • Photographer attribution travels with the bytes

What the visitor downloads

  • index.html· static markup
  • styles.css· computed tokens
  • consent.js· gate + receipt
  • analytics.js· visit id, funnel
  • react-dom· never sent
0 kBframework runtime on the page

Leads

Attribution captured, not reconstructed

Every lead stores where it came from at the moment it was submitted, so the numbers still make sense a month later.

  • Page, campaign, source, A/B variant and consent state on every row
  • Email alerts on arrival
  • A contact captured in a chat transcript becomes a lead with source chat
  • Account → project → page separation from day one
Dana WhitfieldNew

Lead · 12 min ago

page
Solar — Phoenix
campaign
phx-solar-q3
source
Google Ads
variant
B
consent
granted 12:04
chat
4 turns · qualified

Chat

A bot on a leash, by design

It qualifies against one playbook and nothing else. When it runs out of rope it hands the visitor to the form instead of improvising.

  • Grounded in your knowledge base and the live page copy only
  • Fixed playbook: need → area → timeline → contact
  • Discloses that it's AI on the first turn
  • Turn caps plus per-project and global daily spend caps, degrading to the form

Qualification chat

AI · disclosed
  • Hi — I'm an AI assistant. What are you looking to get done?
  • Roof replacement quote, about 140 m².
  • Got it. What timeline are you working to?
  • need
  • area
  • timeline
  • contact

A/B

The split happens at the edge

Both variants are real files. No client-side flicker, no test script deciding what to show after the page has already painted.

  • Control renders to index.html, challenger to variant-b.html
  • Each file bakes its own variant id; the Worker reads ab.json for the weight
  • Traffic splits stickily, so a returning visitor sees the same version
  • Leads and view beacons attribute per variant; promote-winner flips the live version

Cloudflare Worker

  • index.html60% · 5.6% conv
  • variant-b.html40% · 7.3% conv

Sticky by visitor · decided before the page is sent

Analytics

Measured without a cookie

First-party, session-scoped, and enough to tell you which variant and which source is actually working.

  • Keyed to a sessionStorage visit id, not a cookie
  • Funnel steps form_start and form_submit alongside pageviews
  • Visits, leads, conversion, timeseries, leads-by-source, variant comparison

Last 30 days · all sources

  • Visited18,420
  • Started4,180
  • Submitted1,284
Consent accepted71.4%

Ship your next campaign page today.

Start free, publish to your own domain, and see the first attributed lead before the week is out.