Website Day
Managing the paid, self-serve Website Day site-generation offer — order lifecycle, intake, template DNA, and admin order management
Overview
Website Day (marketed as "$1,000 Website in a Day") is a productized, paid, self-serve offer: a client checks out, completes an intake wizard, and the platform generates a new website automatically through an AI build pipeline — no operator involvement required for a normal build.
This is a different system from the Website Editor — Website Editor makes bounded edits to a client's existing connected site. Website Day generates a brand-new site from scratch (or from a selected starter template) as part of a paid checkout flow.
Order Lifecycle
A Website Day order moves through these statuses:
| Status | Meaning |
|---|---|
PAYMENT_PENDING | Checkout started, payment not yet confirmed |
PAID | Payment confirmed, order created |
PENDING_INTAKE | Client hasn't completed the intake wizard yet |
INTAKE_COMPLETE | Intake finished, ready for build |
AI_BUILD | Automated generation pipeline is running |
DESIGNER_REVIEW | Awaiting designer review of the generated build |
DEPLOY | Build approved, deploying to hosting |
HUMAN_REVIEW | Automated build needs operator attention before shipping |
MVP_COMPLETE | Site delivered |
DNS_PENDING / DNS_COMPLETE | Domain cutover in progress / finished |
BUILD_FAILED | The build stopped — check the order's failureReason and build logs for why (e.g. a quality gate or a structural blocker) |
INTAKE_ABANDONED | Client paid but never completed intake |
WAITLISTED | Order queued behind checkout capacity |
CANCELLED | Order cancelled |
Client Flow
- Client checks out from the public Website Day offer page (capacity-limited — once seats are full, new signups land on a waitlist instead).
- Client completes the intake wizard: existing site (if any, used for context only — never copied), brand basics, offer details, and more.
- Client optionally selects a starter template from the Figma-backed template catalog, or continues from scratch.
- Once intake is complete, the AI build pipeline runs automatically.
- Depending on build outcome, the order lands in
HUMAN_REVIEW,BUILD_FAILED, or proceeds straight to deploy.
Template DNA
When a client selects a starter template, the generated site automatically matches that template's colors, fonts, border radius, and shadow style — the AI build pipeline extracts this "DNA" from the template's Figma source and carries it through generation. Scratch builds (no template selected) are unaffected. There's no client-facing control for this — it happens automatically based on the template chosen at intake.
Review-First Offer ($297 Deposit + $703 Balance)
Website Day also runs as a second version called review-first. Instead of paying the full amount up front, the client pays a $297 deposit, watches the site get built, and reviews it before paying the rest.
This version only shows up through a private link with a special offer code — it is not on the public offer page. Checkout without a valid, active code fails with an error instead of showing the wrong price.
How Review-First Is Different From Standard
- Deposit now, balance later. The client pays $297 at checkout. Once the site is approved, Affinity sends a separate $703 completion invoice (plus tax) through Stripe.
- No starter AI credit. The standard offer includes starter AI credits; review-first does not. The client can add a monthly AI editing plan later if they want one.
- A review step blocks the rest of the portal. Until the client responds to the review, they only see the review screen — not the normal dashboard.
The Review Screen, Step By Step
- Building — the client sees a "we're working on it" screen with a button to check status.
- Review ready — the client opens the private preview and answers "How do you feel about your site?":
- "I love it" / "I like it" → the client approves the site. Nothing is charged yet.
- "It needs work" → the client picks an AI editing plan before moving on.
- "I hate it" → this starts a refund request. It is never automatic — an operator has to process it.
- Balance due — once Affinity sends the $703 invoice, the client pays it on a secure Stripe page, then clicks "I have paid — check status."
- Plan offer — after the balance is paid, the client picks a monthly AI credits plan, or clicks "Continue without AI editing" to unlock the full portal.
- Completed — from here on, the client's dashboard opens normally.
If a client closes the browser mid-checkout and comes back later, the platform will not resume the order just because the email or phone number matches — that is deliberate, so no one else could resume someone else's checkout by guessing their contact info. Instead, the checkout page itself remembers the in-progress payment in the browser, so the same client can pick up where they left off without paying twice.
Admin Controls For Review-First
- Settings → Offers → "$297 Review-First Campaign" — turn the campaign on or off, set the private offer code, and optionally set a start/end window for when the code works.
- On an order's detail page, a Review-First card shows buttons that match where the order is in the flow:
- Release customer review — makes the preview available to the client
- Send completion invoice — sends the $703 Stripe invoice
- Mark completion paid — for recording a payment taken outside Stripe
- Process $297 refund — for orders the client rejected
Refunds for review-first orders are never automatic. A client choosing "I hate it" only files the request — an operator still has to review and process it from the order page.
Local Business Subscription Offer
Website Day also runs as a third checkout mode: a monthly subscription instead of a one-time build. It's aimed at local businesses that already have some track record, not brand-new startups.
A visitor reaches this mode through a special link that adds ?offer_mode=local_business_subscription to the Website Day offer page. It is a separate flow from both the standard checkout and the review-first offer described above.
How It Qualifies Leads
Before showing pricing, the flow asks for the business name, contact info, how long the business has been operating, and roughly how many past customers it has served. A business only qualifies for the subscription if it has been operating for at least 1 year and has at least 1 past customer. If either answer is too low, the visitor is routed to the standard one-time Website Day offer instead, with a short explanation of why.
The form also asks the visitor to pick a monthly budget range (under $200, $200–$500, or $500+). This answer does not gate qualification — it's stored on the lead for the agency's own follow-up context, not used to approve or reject anyone.
The Screens, In Order
- Qualification — business details, budget range
- Education — nine short screens explaining what's included: a custom website, instant lead text-back, chat-to-SMS, Google Business Profile optimization, a review/reactivation engine, reputation management, calendar/booking, mobile notifications, and 24/7 done-for-you management
- Base offer — accept the $297/month plan
- Agent package upsell — add the AI agent package to bring the total to $499/month, or continue at $297/month
- How it works — a plain explanation of the next steps: checkout, portal access, an intake questionnaire, then Affinity starts the build
- Checkout — billing address and a Stripe subscription checkout, or a waitlist screen if capacity is closed
If a visitor closes the browser partway through, the flow can resume where they left off using a token stored for that session — it does not resume automatically just because someone re-enters the same email or phone number.
Unlike the standard Website Day offer, the local business subscription does not include starter AI credits. A client can add a monthly AI editing plan separately if they want one.
Turning It On
This offer mode doesn't have its own settings panel yet. An agency admin enables and prices it by patching the platform config directly:
{
"localBusinessSubscription": {
"enabled": true,
"currency": "USD",
"baseMonthlyPrice": 297,
"agentMonthlyPrice": 499
}
}
Currency must be USD, and the agent-package price can't be set lower than the base price — both are validated when the config is saved. The offer is still subject to the same global Website Day enable/capacity settings as the standard checkout.
Pre-Checkout Qualification Funnel
Before a visitor ever reaches checkout, the public /offers/website-day page runs a short qualification quiz — business age, goal, and budget — and routes them to one of five outcomes based on their budget answer:
| Budget answer | Outcome |
|---|---|
| No budget available | Redirect to the free Prompt Masters community |
| Under $1,500 | Continue to the $1,000 Website Day checkout described above |
| $3k–$5k | Book a full website revamp discovery call with a specialist |
| $5k–$15k | Book a growth gameplan call with a specialist |
| $15k+ | Book a bespoke specialist consult |
For the three specialist-call outcomes, the funnel books natively into the agency's connected GHL calendar — the visitor picks an open slot and is booked immediately (no confirmation click, no email back-and-forth). Their intake answers (business age, goal, budget, recommendation) are attached as a note on the resulting GHL appointment (falling back to a contact note if the appointment note fails), and they get a confirmation email with the booking details.
Admin Configuration
- Settings → Agency GHL — pick which connected calendar the specialist-booking flow uses, with an optional booking URL override.
- Settings → Offers — Booking Days Out controls how many days of open slots the funnel shows (1–7, default 3), alongside the existing Disqualified CTA URL and Knowledge Redirect URL for visitors who opt out of the quiz.
Managing Orders (Admin)
Open Admin → Orders and select an order to see its full detail page:
- Header — order id, contact, status badge, payment badge, and the relevant action buttons for that status
- Intake progress — completed steps, last active step, last draft-saved time
- Selected template — thumbnail, slug, industry, and source when a template was chosen; "Scratch" otherwise
- Template DNA — color swatches, heading/body fonts, border radius, shadow style, and source file once extracted; a warning if extraction failed on a template build
- Selected logo, AI-filled markers (which intake fields the AI filled in from a site scan vs. a suggestion), and scan summary when the client's existing site was scanned
- Build logs — the most recent entries, color-coded by level
- Internal AI Build Cost (agency-only) — total cost, wall-clock time, cost per minute, agent turns, attempts/retries, and token usage for the build
Recovering a Failed or Stuck Build
From BUILD_FAILED, HUMAN_REVIEW, or DEPLOY, use one of:
| Action | What it does |
|---|---|
| Retry | Re-runs the build from the beginning |
| Retry from last stage | Resumes from the last completed stage instead of starting over |
| Nuke & Restart | Wipes all generated artifacts (app code, checkpoint commits) and starts completely fresh — use only when the generated output is unrecoverable |
Nuke & Restart is destructive and cannot be undone — prefer Retry or Retry from last stage first.
Ad Attribution (Agency Meta Pixel)
Website Day runs on the agency's own ads, not a client's — so crediting a sale back to the ad that drove it uses the agency's own Meta pixel, set up once for the whole platform.
When a Website Day order is paid (checkout or marked paid manually), the platform sends a server-side Purchase event straight to Meta for that pixel. This is a Conversions API (CAPI) event only — Website Day's offer pages don't carry a browser pixel — so it's the reliable half of the signal Meta needs to attribute the sale.
Setting It Up
Go to Admin → Config → Agency Connections → Agency Meta Pixel:
- Enter your Meta Pixel ID and click Save.
- Click Enable. (This stays disabled until a pixel ID is saved.)
Authentication is shared across the whole agency Business Manager, so there's nothing else to connect here — no separate access token per pixel.
The card shows four things at a glance: whether it's Active or Disabled, the saved Pixel ID, whether the shared CAPI access token is Configured, and the Last event sent (with the error message shown if the last attempt failed).
Testing It
Don't guess whether it's working — Meta gives you a real test mode:
- In Meta Events Manager, open Data Sources → your pixel → Test Events. Meta shows you a short code (for example
TEST12345) — this is different from a real conversion and only exists to mark test traffic. Copy it exactly; a made-up label typed in by hand won't match anything on Meta's side. - Paste that code into Test Event Code on the Agency Meta Pixel card and click Save.
- Click Send test event.
- Watch the Test Events tab in Events Manager — a
Purchaseevent for $1 USD should appear within a few seconds, and the card's Last event should flip from "None" to a fresh timestamp.
The Test Event Code is only ever used by Send test event. Real Purchase events from paid orders never carry it, so testing as often as you like never pollutes your real conversion numbers.
MCP Tools
Website Day order and infrastructure operations are also exposed through the website-offers MCP plugin (config, order status, build lifecycle, and the GitHub/Cloudflare provisioning it depends on) — see the MCP Tool Reference.
