Internal — Vivere eyes only
ProScape Lawn Care · Internal

Build Playbook

Execution plan for the Sonnet 5 build session — this document is the contract.

← Internal hub · ← Storyboard · Strategy Notes →

Read these three files IN FULL before writing any code:
  1. _docs/STORYBOARD.md — what to build (pages, brand, mascot, content)
  2. _docs/INTERNAL-STRATEGY-NOTES.md — why (research, economics, competitor intel)
  3. Vivere Clients\CLAUDE.md — Vivere shared rules

Ground rules (non-negotiable)

Folder layout (create at Phase 1 start)

Proscapeco/
  index.html  services.html  about.html  reviews.html  contact.html
  delta.html  montrose.html  olathe.html  cedaredge.html
  holiday-lighting.html  spring-cleanup.html  aeration.html   (Phase 3)
  404.html  privacy-policy.html  robots.txt  sitemap.xml
  styles.css  script.js
  config/seasonal.json          # header-ribbon + seasonal card config
  assets/                       # webp images, mascot pngs, favicon set
  forms/                        # form handler config
  data/reviews.json             # review wall source
  reports/quote-report/         # (exists — deployed client report, don't touch)
  _docs/                        # (exists — strategy docs, this file)
  social/                       # content program output (cards, scripts, clips)

Phase 0 — Kickoff inputs (BLOCKING)

Work through Storyboard §6 open questions with Joe before Phase 1. Minimum to start: logo decision, mascot pick, photo set (or approval to build with placeholders), confirmation of claims (est. year, licensed/insured). If Joe says "build with placeholders," proceed and log every placeholder.

Phase 1 — Foundation site

  1. Scaffold folder layout; port framework boilerplate from TIO/Mimi's (nav, footer, scroll-reveal, seasonal ribbon reading config/seasonal.json).
  2. Build pages in this order: index → services → contact (+ quote form v1) → about → reviews → 4 town pages → utility pages. Follow Storyboard §3 section-by-section; don't invent new sections without flagging.
  3. Quote form v1 = multi-step per Storyboard §4, submitting via the same form backend pattern as the reference builds (check Mimi's/TIO forms/ for the working pattern; if none fits, propose one to Joe — do not silently pick a new vendor).
  4. SEO layer on every page: unique title/description, canonical, OG/Twitter, LocalBusiness schema (name "ProScape Lawn Care" — NAP must exactly match the GBP once confirmed; this is the name-collision defense), Service schema on services, Review schema on reviews page, areaServed on town pages.
  5. Images: everything webp, explicit width/height, lazy-load below fold, hero preloaded.
  6. Accessibility: skip link, focus states, aria on nav/accordion/slider, contrast-check the rose (#b05a72) on cream — bump darkness if it fails AA at text sizes.
  7. Acceptance criteria before showing Joe: Lighthouse ≥90 all four categories (mobile), loads <2s on simulated 4G, every nav link works, form submits end-to-end, valid schema, zero console errors, looks right at 375px / 768px / 1440px.
  8. Review gate → then create CF Pages project proscape-staging, deploy, send Joe the link.

Phase 2 — Booking & client layer (after Phase 1 approved + rate card received)

  1. Instant ballpark quote: extend the form — after size/frequency selection show "typically $X–$Y per visit" from a rates table in config/rates.json (client's real numbers). No satellite API in v1; keep it a static tier table.
  2. Online booking for one-time services: calendar-slot request (not hard booking) — client confirms by text. Keep it simple; this is a 2-person company.
  3. Lead enrichment: every submission appended with town/size/service/source; set up the notification + storage flow (email first; discuss anything heavier with Joe).
  4. Seasonal outreach templates (email/SMS copy) for blowouts, lights, aeration windows.
  5. Same acceptance criteria + review gate + staging deploy.

Phase 3 — Growth layer

Seasonal landing pages per storyboard, GA4 with form-conversion events, content hub page for tip cards. Review gate, staging, then discuss live cutover (domain move from Webador — needs registrar access; coordinate DNS with Joe, don't touch DNS yourself).

Content program (parallel track, starts after mascot approval)

  1. Mascot kit per Storyboard §2 — build with the PIL card pipeline (Rowdy kit is the model, see GVEC media channel patterns). Deliver character sheet for Joe's + client's approval BEFORE batch production.
  2. Batch-produce the spring/summer card sets first (it's July — "Surviving July" set is immediately postable), then fall set by September (lights early-bird cards).
  3. Script + shot-list the three launch shorts (Storyboard §5) — client films on phone; we edit (ffmpeg pipeline per technique library).
  4. Blotato scheduling once client accounts are connected — list accounts first, never post without Joe's explicit go per post batch.
  5. Output convention: social/cards/<season>/, social/scripts/, social/clips/.

Deploy commands

# staging (create once)
npx wrangler pages project create proscape-staging --production-branch=main
cd "C:\Users\sutli\Desktop\Developer\Vivere Clients\Proscapeco"
npx wrangler pages deploy . --project-name proscape-staging --branch=main --commit-dirty=true
Exclude from site deploys: _docs/, social/, reports/ (the report has its own project: proscape-quote-report). Deploy from a clean dist/ copy or maintain the exclusion list in the deploy script — verify nothing internal ships; the strategy docs must NEVER reach a public URL via the site project.

Definition of done (Phase 1)