v2.0 · March 2026
INTERNAL OPERATIONS DOCUMENT

Website Operations Playbook

The complete 20-step linear workflow for how we build, QA, launch, and hand off every client website at Dotcom Design. Every step must be completed in order. No step may be skipped.

Version: 2.0 Updated: March 2026 Steps: 20 Status: Active

How This Playbook Works

This is a linear workflow. Each step has an Entry Condition (what must be true before you start) and a Completion Gate (the exact deliverables that must exist before you move forward). You cannot enter a step until its Entry Condition is met. You cannot leave a step until its Completion Gate is satisfied. This is not a reference wiki — it is a play-by-play that enforces quality at every handoff.

The 20-Step Workflow

#StepPhaseTime
1Kickoff CallIntake45 min
2Content ScrapingIntake30 min
3Domain & Hosting IntakeIntake15 min
4SEO StrategyIntake5 min
5Brief PreparationBuild30 min
6Site BuildBuild2–4 hrs
7Visual QAQA30 min
8Technical QAQA20 min
9SEO Readiness AuditQA20 min
10Performance OptimizationQA30 min
11AI Friendliness AuditQA15 min
12Content QAReview20 min
13Deploy to PreviewReview15 min
14Client ReviewReview48 hr window
15RevisionsLaunch1–2 hrs
16Go LiveLaunch30 min
17Post-Launch MonitoringLaunch30 min
18GBP SyncHandoff20 min
19Quarterback HandoffHandoff15 min
20Ongoing MaintenanceHandoffOngoing
Entry Condition — Before starting this step
  • Signed contract received from the client
  • Client contact name, phone, and email confirmed
  • Kickoff call scheduled and confirmed with client
1
Phase 1: Intake
Kickoff Call

The kickoff call is the foundation of every build. Everything that follows — the brief, the build, the SEO strategy — depends on the quality of information gathered here. The call should run 45 minutes. Do not rush it. A thorough kickoff prevents revision loops later.

Before the Call

Look up the client's existing website (if they have one) and spend 10 minutes reviewing it. Note the services they list, the cities they mention, and any obvious gaps or outdated content. This preparation allows you to ask better questions and catch inconsistencies during the call.

Call Structure (45 Minutes)

TimeTopicWhat to Capture
0–5 minIntroductions & overviewConfirm contact info, confirm timeline expectations
5–15 minBusiness overviewExact business name, years in business, number of employees, license numbers, service area, HQ city
15–25 minServicesComplete list of every service offered, primary vs. secondary services, services they want to emphasize
25–35 minDesign directionDesign slider scores (see below), reference sites they like, colors or fonts they prefer, logo files
35–45 minContent & logisticsPhotos available, testimonials/reviews, team bios, special offers, any content they want to keep from old site

Design Sliders

Ask the client to score each slider from 1 to 10. These scores directly inform the build prompt in Step 5. Record all six scores.

Slider1 (Left)10 (Right)
StyleClassic / TraditionalModern / Contemporary
ToneLight & AiryDark & Bold
ComplexitySimple & CleanRich & Layered
VoiceFriendly & ApproachableAuthoritative & Expert
Market PositionEconomical & AccessiblePremium & Exclusive
AestheticPolished & RefinedGritty & Industrial

Client Brief Fields

Every field in the client brief must be filled before leaving this step. Do not leave any field blank. If the client does not know the answer, note "TBD — follow up" and schedule a follow-up before Step 5.

FieldNotes
Business name (exact)As it appears on their license and Google Business Profile
Phone numberPrimary contact number for the website
AddressFull street address including ZIP
Business hoursDay-by-day, including holiday exceptions if known
Service areaCities, counties, or radius served
Services listComplete list, ordered by importance
Years in businessUsed in trust signals and schema
License numbersContractor license, bonding, insurance — whatever applies
Design slider scoresAll six sliders, 1–10
Reference site URLA site they like the look of (optional but valuable)
Logo filesRequest PNG or SVG; note if unavailable
Photos availableYes/No and approximate count
Testimonials/reviewsCount and source (Google, Yelp, etc.)
Completion Gate — Required before moving to Step 2
  • Client brief fully populated — all fields filled or marked TBD with follow-up scheduled
  • All six design slider scores recorded
  • Reference site URL noted (or confirmed not applicable)
  • Logo files received or follow-up scheduled
  • Photos status confirmed (available count or "client will send")
Next Step
Step 2: Content Scraping & Site Inventory
Entry Condition — Before starting this step
  • Step 1 Completion Gate satisfied
  • Client's existing website URL confirmed (if they have one)
  • Manus task open and ready
2
Phase 1: Intake
Content Scraping & Site Inventory

If the client has an existing website, use Manus to extract all usable content before it is replaced. This step ensures no copy, imagery, or data is lost during the transition. Even a poorly designed old site often contains accurate business information that would take hours to re-gather.

Do not skip this step for clients with existing sites. The old site is the single most complete source of business information available. Skipping this step forces you to reconstruct content from scratch during the build, which introduces errors and delays.

Manus Scrape Prompt

Open a Manus task and submit the following prompt, replacing the URL with the client's actual site:

CONTENT SCRAPE PROMPT
Please scrape the following website and extract all content for a rebuild:
[CLIENT WEBSITE URL]

Extract and organize the following:
1. All page copy (home, about, services, contact, and any other pages)
2. All images — download and save as WebP where possible
3. Logo files — save as PNG and SVG if available
4. Business information: name, phone, address, hours, service area
5. All existing services and service descriptions
6. Any testimonials or reviews displayed on the site
7. Team member names and bios
8. Any license numbers, certifications, or trust badges
9. Existing page structure (list all pages found)
10. Any existing integrations (contact forms, chat widgets, booking tools)

Organize everything into a folder called /assets/ and provide a summary
of what was found and what was missing or inaccessible.

What to Do With the Output

Review the Manus output carefully. Cross-reference the extracted business information against the client brief from Step 1. Any discrepancies — different phone numbers, different service lists, different addresses — must be resolved with the client before Step 5. Do not assume the website is correct; the client brief takes precedence.

If the Client Has No Existing Website

If this is a brand-new website with no existing site to scrape, skip the Manus scrape. Instead, use the client brief from Step 1 as the sole content source. Note in the brief that no existing site was available. Proceed directly to Step 3.

Site Inventory Checklist

ItemFound?Notes
All page copyYes / No / PartialNote any pages that were blocked or inaccessible
ImagesYes / No / PartialNote count and quality
Logo filesYes / NoNote format (PNG, SVG, JPG)
Business info (NAP)Yes / NoCross-reference against client brief
Services listYes / No / PartialNote any services on old site not in brief
TestimonialsYes / NoNote count
Team infoYes / NoNames, titles, bios
License/cert numbersYes / NoVerify against brief
Existing integrationsYes / NoNote any to replicate
Completion Gate — Required before moving to Step 3
  • All extractable content saved to /assets/ folder in Manus task
  • Site inventory checklist completed
  • Discrepancies between old site and client brief identified and flagged for resolution
  • Client brief updated with any new information found during scrape
Next Step
Step 3: Domain & Hosting Intake
Entry Condition — Before starting this step
  • Step 2 Completion Gate satisfied
  • Client contact available to provide or look up credentials
3
Phase 1: Intake
Domain & Hosting Intake

Before any build work begins, you need access to the client's domain registrar. DNS changes are required at launch (Step 16), and discovering access problems on launch day creates delays and client frustration. Resolve access now, while there is time to recover.

Domain Registrar Access

Ask the client: "Who manages your domain — where did you originally register it?" Common registrars include GoDaddy, Namecheap, Google Domains (now Squarespace), Network Solutions, and Bluehost. Once identified, the client needs to either share login credentials or add you as an authorized user.

"I don't know my password" is the most common response. Walk the client through the password reset process on the call if possible. Do not leave this step with unresolved access. A client who cannot access their registrar on the kickoff call will not be able to access it on launch day either.

What to Document

ItemWhere to Find ItWhy It Matters
Domain registrar nameClient provides; or run whois clientdomain.comTells you where to make DNS changes at launch
Registrar login credentialsClient providesRequired to add DNS records at launch
Current nameserversRegistrar DNS settingsDetermines if DNS is managed at registrar or elsewhere (e.g., Cloudflare)
Current DNS recordsRegistrar DNS settingsDocument all existing A, CNAME, MX, TXT records before making changes
Domain expiration dateRegistrar dashboardAlert client if domain expires within 90 days
Current hosting providerClient provides or DNS lookupNeeded to understand what will be replaced

If the Client Uses Cloudflare

Some clients already have their domain on Cloudflare. If so, the DNS changes at launch are made in the Cloudflare dashboard instead of the registrar. Confirm whether Cloudflare is being used and document the login credentials accordingly.

New Domains

If the client does not have a domain yet, register one on their behalf through Namecheap or Cloudflare Registrar. Use the client's business name as the basis for the domain. Confirm the domain with the client before purchasing. Document the registrar login credentials immediately after registration.

Completion Gate — Required before moving to Step 4
  • Domain registrar identified and documented
  • Registrar login credentials confirmed and accessible
  • Current DNS records documented (screenshot or text copy)
  • Domain expiration date noted; client alerted if within 90 days
Next Step
Step 4: SEO Strategy
Entry Condition — Before starting this step
  • Step 3 Completion Gate satisfied
  • Client website URL available (existing site or confirmed new domain)
  • Client's plan level confirmed (SEO Booster, Plan A, Plan B, etc.)
4
Phase 1: Intake
SEO Strategy

The SEO strategy produces the keyword-city matrix that drives the site architecture. Every service page and location page built in Step 6 corresponds to a row in this matrix. The strategy must be completed before the build begins — it is not optional and it is not done after the fact.

How to Run the SEO Strategy

Navigate to the SEO Portal at seo.dotcomdesignops.com and click "Build New Strategy." Enter the client's website URL and plan level. The system will run automatically and produce a live strategy site within 5 minutes. The full process is documented in the SEO Operations Playbook.

What the Strategy Produces

OutputWhat It IsHow It's Used
Keyword-city matrixA grid of selected keywords x selected marketsPasted directly into Section 7 of the build prompt in Step 5
Live strategy site URLA branded client-facing site at seo-strategy.dotcomdesign.com/{domain}Shared with client to show what pages will be built and why
Selected keywordsThe 1–5 keywords chosen for this clientUsed to name service pages and write meta titles
Selected marketsThe cities targeted in the strategyUsed to name location pages and write meta titles

Plan Levels Reference

PlanPriceCombinations
SEO Booster$399/mo10
Plan A$600/mo20
Plan B$900/mo30
Plan C$1,200/mo40
Plan D$1,600/mo50
Plan E$2,000/mo60
Completion Gate — Required before moving to Step 5
  • Keyword-city matrix generated with correct combination count for the plan level
  • Live strategy site URL saved to the client brief
  • Matrix copied and ready to paste into the build prompt
Next Step
Step 5: Brief Preparation
Entry Condition — Before starting this step
  • Steps 1–4 Completion Gates all satisfied
  • Client brief fully populated
  • Keyword-city matrix ready to paste
  • Logo files and any available photos on hand
5
Phase 2: Build
Brief Preparation

The build brief is the single document that drives the entire Manus build session. A well-written brief produces a site that needs minimal revision. A vague or incomplete brief produces a site that requires multiple revision loops. Invest the time here — it pays back tenfold in Step 6.

Brief Anatomy

The brief has eight required sections. Every section must be completed before opening the Manus build task. Do not start the build with a partial brief.

#SectionWhat Goes Here
1Business IdentityExact business name, phone, address, hours, years in business, license numbers
2Service AreaPrimary city, all cities/counties served, HQ city
3ServicesComplete ordered list of all services; note primary vs. secondary
4Design DirectionAll six slider scores, reference site URL, any specific color or font preferences
5Content AssetsLogo file location, photo count and source, testimonials text, team info
6Trust SignalsYears in business, license numbers, certifications, awards, associations
7SEO MatrixFull keyword-city matrix pasted from Step 4
8Special InstructionsAnything unique to this client: specific pages requested, content to keep, integrations needed

Build Prompt Template

See the Build Prompt Template in the Appendix for the full fill-in template. Copy it, fill in every field, and use it as the opening message in your Manus build task.

Opening the Manus Task

Before submitting the brief, read the Multi-Agent Workflow page in the Appendix. It contains the exact opening prompt to paste at the start of every Manus build session, which loads the correct skills and sets the right context before the brief is submitted.

Completion Gate — Required before moving to Step 6
  • All eight brief sections completed — no blank fields
  • SEO matrix pasted into Section 7
  • Build prompt template filled and ready to submit
  • Manus task opened with the correct opening prompt
Next Step
Step 6: Site Build
Entry Condition — Before starting this step
  • Step 5 Completion Gate satisfied
  • Build brief submitted to Manus and acknowledged
  • All eight brief sections confirmed complete
6
Phase 2: Build
Site Build

The site build is executed entirely inside Manus using the static site stack (HTML, CSS, vanilla JS). Manus builds the full site based on the brief. Your role during the build is to review output as it comes in, catch issues early, and provide corrections before the full site is assembled.

Build Stack

All client websites are built as static HTML/CSS/JS sites deployed to Cloudflare Pages. This is the only acceptable stack. Do not use WordPress, Webflow, Squarespace, Wix, or any other CMS. Do not use React, Vue, or any JavaScript framework. The site must be pure static HTML.

LayerTechnologyNotes
MarkupHTML5 (semantic)Use proper heading hierarchy, landmark elements, ARIA labels
StylingCSS3 (no frameworks)No Bootstrap, no Tailwind — hand-written CSS only
InteractivityVanilla JavaScriptNo jQuery, no React — plain JS only
ImagesWebP formatAll images must be converted to WebP before deployment
FontsSelf-hosted or Google FontsNo Adobe Fonts — use Google Fonts CDN or self-host
HostingCloudflare PagesAll sites deploy to Cloudflare Pages via GitHub repo
DNSCloudflare DNSAll domains use Cloudflare for DNS management
FormsFormspreeAll contact forms use Formspree for submission handling

Required Pages

Every site must include the following pages at minimum. Additional pages are added based on the SEO matrix from Step 4.

PageRequired?Notes
Home (/)AlwaysFull homepage with hero, services overview, trust signals, CTA
About (/about)AlwaysCompany story, team, years in business, mission
Contact (/contact)AlwaysContact form, phone, address, map embed, hours
Service pagesPer matrixOne page per keyword in the SEO matrix (e.g., /roofing)
Location pagesPer matrixOne page per city in the SEO matrix (e.g., /omaha-ne)
Gallery (/gallery)If photos availableRequired if client has 6+ photos; skip if no photos

Homepage SOP

The homepage must contain all of the following sections in this order. Manus will build them — this list is your review checklist.

  1. Navigation bar — Logo, all main nav links, phone number as a CTA button. Must be sticky on scroll.
  2. Hero section — Headline with primary keyword, subheadline, primary CTA button (phone), secondary CTA (contact form). Background image or strong visual.
  3. Trust bar — Years in business, license number, service area, key differentiators. Displayed as icon + stat pairs.
  4. Services overview — Grid of service cards. Each card links to the corresponding service page.
  5. About teaser — 2–3 sentences about the company, photo of owner or team, link to full About page.
  6. Gallery teaser — 3–6 photos in a grid. Link to full Gallery page. Skip if no photos available.
  7. Testimonials — 3–5 testimonials. Star ratings if available. Source attribution (Google, etc.).
  8. Service area map or list — Either an embedded Google Map or a list of cities served.
  9. Contact CTA section — Final call to action with phone number and link to contact form.
  10. Footer — Logo, nav links, phone, address, hours, copyright, license number.

Mobile SOP

Every page must be fully responsive. The following mobile-specific requirements apply to every build. These are not optional — they are checked in Step 7 (Visual QA).

RequirementStandard
BreakpointsMobile: 375px, Tablet: 768px, Desktop: 1200px. Test at all three.
NavigationHamburger menu on mobile. Menu must open as a full overlay or slide-in drawer. All nav links must be tappable (min 44px touch target).
Sticky call barA fixed bottom bar on mobile with the phone number as a tap-to-call button. Required on every page. Height: 56px minimum.
Font sizesBody: min 16px on mobile. Headings scale down proportionally. Never below 14px for any readable text.
ImagesAll images use width: 100% and height: auto on mobile. No horizontal overflow.
FormsAll form inputs min 44px height. Labels above inputs (not placeholder-only). Submit button full-width on mobile.
TablesTables must scroll horizontally on mobile or reformat to stacked layout. No horizontal page overflow from tables.
Touch targetsAll interactive elements (buttons, links, nav items) must have a minimum 44×44px touch target.
No horizontal scrollThe page must not scroll horizontally on any mobile viewport. Check with Chrome DevTools.

Interior Page SOP

All service pages and location pages follow the same interior page structure. Manus builds these automatically from the SEO matrix. Review each one against this structure.

  1. Page hero — H1 with the exact keyword + city (e.g., "Roofing Contractor in Omaha, NE"). Subheadline. CTA button.
  2. Intro section — 2–3 paragraphs of unique copy about this service or location. Must not be copied from another page.
  3. Services list — Bulleted or card list of specific services offered in this context.
  4. Why choose us — 3–4 differentiators relevant to this service or market.
  5. Gallery or photo — At least one relevant image. Use a gallery if photos are available.
  6. Testimonial — At least one testimonial, ideally from a client in this city or for this service.
  7. Contact CTA — Phone number, contact form link, or embedded form.
  8. FAQ section — 3–5 FAQs relevant to this service or location. These become FAQ schema in Step 9.
  9. Internal links — At least 2 links to related service pages or location pages.

Gallery SOP

If the client has 6 or more photos, a gallery page is required. The gallery must meet the following standards.

RequirementStandard
Image formatAll images converted to WebP before upload
Grid layout2-column on mobile, 3-column on tablet, 4-column on desktop
LightboxClicking an image opens a full-screen lightbox with prev/next navigation
Alt textEvery image must have descriptive alt text including the business name and service type
Lazy loadingAll gallery images use loading="lazy"
CaptionsOptional but recommended if client can provide project descriptions
Completion Gate — Required before moving to Step 7
  • All required pages built and accessible in the Manus preview
  • Homepage contains all 10 required sections in correct order
  • All service pages and location pages from the SEO matrix are built
  • All images are in WebP format
  • Sticky mobile call bar present on all pages
  • No horizontal scroll on mobile viewports
  • Contact form connected to Formspree and tested (submission received)
Next Step
Step 7: Visual QA
Entry Condition — Before starting this step
  • Step 6 Completion Gate satisfied
  • All pages accessible in Manus preview URL
  • Chrome DevTools available for responsive testing
7
Phase 3: QA
Visual QA

Visual QA is a systematic page-by-page review of the site at three viewports: mobile (375px), tablet (768px), and desktop (1200px). Every page is checked. No page is skipped. Issues found here are fixed before moving to Technical QA.

Visual QA Checklist — Every Page

Run this checklist on every page of the site. Check all three viewports for each item.

CheckPass Criteria
No horizontal scrollPage does not overflow horizontally at 375px, 768px, or 1200px
Navigation renders correctlyDesktop nav shows full links; mobile shows hamburger that opens correctly
Sticky call bar visible on mobileFixed bottom bar with phone number visible on all mobile pages
All images loadNo broken image icons; all images display correctly
All images are WebPRight-click → Inspect → check src attribute ends in .webp
Text is readableNo text is white-on-white, black-on-black, or otherwise invisible
Font sizes appropriateBody text ≥ 16px on mobile; headings scale proportionally
Buttons are tappableAll buttons ≥ 44×44px touch target
Links workAll navigation links, CTA buttons, and internal links go to the correct destination
Contact form visibleForm is present on Contact page and renders correctly on all viewports
Phone number is tap-to-callPhone numbers are wrapped in <a href="tel:..."> links
Address links to Google MapsAddress wrapped in Google Maps link
Footer completeLogo, nav, phone, address, hours, copyright, license number all present
No placeholder contentNo "Lorem ipsum", "Your Business Name", or "[INSERT]" text anywhere
Logo displays correctlyLogo is crisp, correct size, not stretched or pixelated

Homepage-Specific Checks

CheckPass Criteria
Hero headline contains primary keywordH1 includes the main service keyword
Trust bar presentYears in business, license, service area displayed
All 10 homepage sections presentCross-reference against the Homepage SOP in Step 6
Counter animations workNumber counters animate when scrolled into view
Testimonials displayAt least 3 testimonials visible with star ratings
Completion Gate — Required before moving to Step 8
  • All pages reviewed at 375px, 768px, and 1200px
  • All Visual QA checklist items pass on all pages
  • All issues found during review fixed and re-checked
  • No placeholder content remaining anywhere on the site
Next Step
Step 8: Technical QA
Entry Condition — Before starting this step
  • Step 7 Completion Gate satisfied
  • Site accessible at a live preview URL (Manus or Cloudflare Pages preview)
8
Phase 3: QA
Technical QA

Technical QA checks the underlying code and infrastructure of the site — things that are invisible in a visual review but affect performance, accessibility, and search engine indexing. Run these checks against the live preview URL.

Technical QA Checklist

CheckToolPass Criteria
No broken linksChrome DevTools ConsoleZero 404 errors in the console on any page
No JavaScript errorsChrome DevTools ConsoleZero JS errors in the console on any page
Contact form submitsManual testSubmit a test entry; confirm receipt in Formspree dashboard
robots.txt presentNavigate to /robots.txtFile exists and does not block all crawlers
sitemap.xml presentNavigate to /sitemap.xmlFile exists and lists all pages
Canonical tags presentView sourceEvery page has a <link rel="canonical"> tag
Meta descriptions presentView sourceEvery page has a unique <meta name="description">
Open Graph tags presentView sourceog:title, og:description, og:image on every page
Favicon presentBrowser tabFavicon displays in browser tab
HTTPS enforcedBrowser address barSite loads over HTTPS; no mixed content warnings
404 page existsNavigate to /nonexistent-pageCustom 404 page displays (not a blank page)
Images have alt textView source or DevToolsEvery <img> tag has a non-empty alt attribute
Heading hierarchy correctView sourceOne H1 per page; H2s and H3s used in logical order
Completion Gate — Required before moving to Step 9
  • All Technical QA checklist items pass
  • Zero console errors on all pages
  • Contact form submission confirmed in Formspree
  • robots.txt and sitemap.xml both present and valid
Next Step
Step 9: SEO Readiness Audit
Entry Condition — Before starting this step
  • Step 8 Completion Gate satisfied
  • SEO matrix from Step 4 on hand for reference
9
Phase 3: QA
SEO Readiness Audit

The SEO readiness audit verifies that every on-page SEO element is correctly implemented before the site goes live. This is the last opportunity to catch missing schema, incorrect meta titles, or missing keywords before the site is indexed.

On-Page SEO Checklist

CheckPass Criteria
H1 contains primary keywordEvery page H1 includes the target keyword for that page
Meta title formatFormat: [Keyword] in [City] | [Business Name] — max 60 characters
Meta description formatIncludes keyword, city, phone number — 150–160 characters
URL slugs match keywordsService pages: /roofing; Location pages: /roofing-omaha-ne
LocalBusiness schema presentJSON-LD schema block on every page with name, address, phone, geo, openingHours
FAQ schema presentFAQ JSON-LD on every service and location page (from FAQ sections built in Step 6)
Internal linkingEvery service page links to at least 2 related location pages; every location page links to at least 2 service pages
NAP consistencyBusiness name, address, and phone number are identical on every page and match the Google Business Profile
Image alt text includes keywordsHero and key images include the primary keyword in alt text
Page titles are uniqueNo two pages have the same meta title
Meta descriptions are uniqueNo two pages have the same meta description

Schema Validation

After confirming schema is present in the source, validate it using Google's Rich Results Test at search.google.com/test/rich-results. Paste the preview URL and confirm no errors are returned for LocalBusiness and FAQ schema.

Completion Gate — Required before moving to Step 10
  • All on-page SEO checklist items pass on all pages
  • LocalBusiness schema validates without errors in Rich Results Test
  • FAQ schema validates without errors on all service and location pages
  • NAP is consistent across all pages and matches Google Business Profile
Next Step
Step 10: Performance Optimization
Entry Condition — Before starting this step
  • Step 9 Completion Gate satisfied
  • Site accessible at a live preview URL
10
Phase 3: QA
Performance Optimization

Run PageSpeed Insights on the homepage and at least two interior pages. The target score is 90+ on both mobile and desktop. If the score is below 90, identify the failing items and fix them before proceeding.

PageSpeed Insights

Run the test at pagespeed.web.dev. Test the homepage, one service page, and one location page. Record all four scores (Performance, Accessibility, Best Practices, SEO) for each page.

Score Targets

CategoryMobile TargetDesktop Target
Performance≥ 85≥ 95
Accessibility≥ 95≥ 95
Best Practices≥ 90≥ 90
SEO≥ 95≥ 95

Common Performance Fixes

IssueFix
Images not in WebP formatConvert all images to WebP using Manus or cwebp
Images not sized correctlyResize images to the maximum display size before upload; use srcset for responsive images
Render-blocking resourcesMove non-critical CSS to <link rel="preload">; defer non-critical JS
No lazy loadingAdd loading="lazy" to all below-the-fold images
Large CSS fileInline critical CSS in <style> in the <head>; load the rest asynchronously
Google Fonts blockingUse display=swap parameter; preconnect to fonts.googleapis.com
No font preloadingAdd <link rel="preload"> for the primary font file
Completion Gate — Required before moving to Step 11
  • Homepage scores: Performance ≥ 85 mobile / ≥ 95 desktop; all other categories ≥ 90
  • At least two interior pages tested and meeting targets
  • All PageSpeed scores recorded for the project record
Next Step
Step 11: AI Friendliness Audit
Entry Condition — Before starting this step
  • Step 10 Completion Gate satisfied
  • Site accessible at a live preview URL
11
Phase 3: QA
AI Friendliness Audit

AI search engines (ChatGPT, Perplexity, Google AI Overviews) are increasingly the first point of discovery for local services. An AI-friendly site is structured so that AI systems can accurately extract and cite business information. This step ensures the site is optimized for AI discoverability in addition to traditional search.

AI Friendliness Checklist

CheckPass Criteria
llms.txt presentFile exists at /llms.txt and contains a plain-text summary of the business, services, and contact info
Structured data completeLocalBusiness schema includes all fields: name, address, phone, geo coordinates, openingHours, priceRange, areaServed
Clear entity signalsBusiness name appears in H1 on the homepage; NAP appears in the footer of every page
Service descriptions are specificEach service page describes the service in plain language without jargon; AI can extract what the business does
FAQ content is clearFAQ questions are phrased as natural language questions; answers are concise and factual
No AI-blocking directivesrobots.txt does not block GPTBot, PerplexityBot, or other AI crawlers
Author/entity attributionAbout page clearly identifies the business owner or team

llms.txt Template

Create a file at /llms.txt with the following structure, filled in for the client:

llms.txt TEMPLATE
# [Business Name]

[Business Name] is a licensed [trade] contractor based in [City, State].
We serve [primary service area] and surrounding communities.

## Services
[List all services, one per line]

## Service Area
[List all cities served, one per line]

## Contact
Phone: [phone number]
Address: [full address]
Hours: [business hours]
Website: [domain]

## About
[2-3 sentences about the business: years in business, owner name, mission]

## License & Insurance
[License number, bonding status, insurance status]
Completion Gate — Required before moving to Step 12
  • llms.txt present and populated at /llms.txt
  • All AI Friendliness checklist items pass
  • robots.txt confirmed to not block AI crawlers
Next Step
Step 12: Content QA
Entry Condition — Before starting this step
  • Step 11 Completion Gate satisfied
  • Client brief on hand for reference
12
Phase 4: Review
Content QA

Content QA is a final human review of all copy on the site before the client sees it. This step catches factual errors, tone inconsistencies, and AI-generated copy that sounds generic or inaccurate. You are reading every page — not skimming.

Content QA Checklist

CheckPass Criteria
Business name spelled correctlyExact match to the signed contract and Google Business Profile
Phone number correctMatches client brief; tap-to-call link uses correct digits
Address correctFull address including ZIP matches client brief
Business hours correctDay-by-day hours match client brief exactly
Services list accurateAll services from the brief are present; no services listed that were not in the brief
Service area accurateAll cities from the brief and SEO matrix are represented
License numbers correctNumbers match client brief exactly
Years in business correctMatches client brief; math is correct (founded year to current year)
Testimonials accurateTestimonial text matches source; reviewer names correct
No factual claims that cannot be verifiedRemove any claims like "#1 in the city" or "best in the state" unless client can verify
Tone matches slider scoresCopy tone aligns with the design slider scores from Step 1
No generic filler copyNo "We are committed to excellence" type filler — all copy is specific to this business
Completion Gate — Required before moving to Step 13
  • All Content QA checklist items pass
  • All factual information verified against client brief
  • All corrections made and re-checked
Next Step
Step 13: Deploy to Preview
Entry Condition — Before starting this step
  • Step 12 Completion Gate satisfied
  • GitHub repo for this client exists under the dotcomdesigniowa organization
  • Cloudflare Pages project created for this client
13
Phase 4: Review
Deploy to Preview

Before sending the site to the client for review, deploy it to a Cloudflare Pages preview URL. This gives the client a real browsing experience — not a screenshot or a Manus preview link. The preview URL is what you send in the client review email.

Deployment Steps

  1. Push the final site files to the client's GitHub repo under dotcomdesigniowa
  2. Confirm the Cloudflare Pages project is connected to this GitHub repo and auto-deploys on push
  3. Wait for the Cloudflare Pages build to complete (typically 1–2 minutes)
  4. Copy the Cloudflare Pages preview URL (format: https://[project].pages.dev)
  5. Test the preview URL in an incognito window to confirm it loads correctly
  6. Test on a real mobile device if possible

Cloudflare Pages Setup (First Time)

If this is the first deployment for this client, create the Cloudflare Pages project before pushing. Connect it to the GitHub repo, set the build command to blank (static site — no build step), and set the output directory to / (root).

Completion Gate — Required before moving to Step 14
  • Site deployed to Cloudflare Pages preview URL
  • Preview URL tested in incognito window — loads correctly
  • Preview URL ready to share with client
Next Step
Step 14: Client Review
Entry Condition — Before starting this step
  • Step 13 Completion Gate satisfied
  • Preview URL confirmed working
  • Client contact email confirmed
14
Phase 4: Review
Client Review

Send the preview URL to the client with clear instructions on how to review it and what to look for. Set a 48-hour response window. If no response is received within 48 hours, follow up once. If no response after 72 hours, proceed to Step 15 with zero revisions.

Client Review Email Template

EMAIL TEMPLATE
Subject: Your New Website Is Ready for Review — [Business Name]

Hi [Client Name],

Your new website is ready for your review! Please take a look at the
preview link below and let us know if you have any changes.

Preview Link: [CLOUDFLARE PAGES URL]

How to review:
- Check all pages using the navigation menu
- Review on both your phone and your computer
- Check that all your services, contact info, and hours are correct
- Note any text changes, photo swaps, or additions you'd like

Please send all feedback by [DATE — 48 hours from now]. We'll make
your requested changes and then proceed to launch.

If everything looks great and you're ready to go live, just reply
with "Approved" and we'll schedule the launch.

[Your name]
Dotcom Design

Scope of Revisions

The client is entitled to one round of revisions as part of the build. Revisions include text corrections, photo swaps, and minor layout adjustments. Revisions do not include adding new pages, changing the design direction, or rebuilding sections from scratch. If the client requests out-of-scope changes, note them as a separate project.

Completion Gate — Required before moving to Step 15
  • Client review email sent with preview URL
  • Client feedback received (or 72-hour window elapsed)
  • Revision list compiled and categorized (in-scope vs. out-of-scope)
Next Step
Step 15: Revisions
Entry Condition — Before starting this step
  • Step 14 Completion Gate satisfied
  • Client revision list compiled
15
Phase 5: Launch
Revisions

Implement all in-scope client revisions. After implementing, re-run Visual QA (Step 7 checklist) on any pages that were changed. Do not skip the re-check — revisions sometimes introduce new issues. Once revisions are complete and re-checked, get client approval before proceeding to launch.

Revision Process

  1. Work through the revision list item by item in Manus
  2. After all revisions are made, push to GitHub and confirm the Cloudflare Pages preview updates
  3. Re-run Visual QA on all changed pages
  4. Send the updated preview URL to the client with a note that revisions are complete
  5. Request final approval: "Please reply with 'Approved' to proceed to launch"
Do not proceed to launch without written client approval. "Approved" in an email or text message is sufficient. A verbal approval on a call is not sufficient — follow up with an email summary.
Completion Gate — Required before moving to Step 16
  • All in-scope revisions implemented
  • Visual QA re-run on all changed pages — all checks pass
  • Updated preview URL sent to client
  • Written client approval received
Next Step
Step 16: Go Live
Entry Condition — Before starting this step
  • Step 15 Completion Gate satisfied
  • Written client approval received
  • Domain registrar credentials accessible (from Step 3)
  • Cloudflare Pages custom domain not yet configured
16
Phase 5: Launch
Go Live

Go Live connects the client's domain to the Cloudflare Pages deployment. DNS propagation typically takes 5–30 minutes but can take up to 48 hours in rare cases. Do not schedule a launch for Friday afternoon or before a holiday weekend.

Launch Sequence

  1. In Cloudflare Pages, add the client's custom domain to the project (Settings → Custom Domains)
  2. Cloudflare will provide the DNS records needed (typically a CNAME pointing to pages.dev)
  3. Log into the client's domain registrar (from Step 3 credentials)
  4. Add the CNAME record provided by Cloudflare Pages
  5. If the domain uses Cloudflare DNS already, the record is added automatically — just confirm
  6. Wait 5–30 minutes for DNS propagation
  7. Test the live domain in an incognito window: confirm the site loads, HTTPS is active, and no redirect loops
  8. Submit the sitemap to Google Search Console: https://search.google.com/search-console
  9. Request indexing for the homepage in Google Search Console

Post-DNS Checks

CheckPass Criteria
Site loads on custom domainhttps://clientdomain.com loads the site correctly
HTTPS activePadlock icon in browser; no "Not Secure" warning
www redirects to non-www (or vice versa)Both www and non-www resolve to the same URL without error
Old site is no longer showingThe new site is displayed, not the old site
Contact form works on live domainSubmit a test form entry; confirm receipt in Formspree
Sitemap submittedSitemap URL submitted in Google Search Console
Completion Gate — Required before moving to Step 17
  • Site live at client's custom domain with HTTPS
  • All post-DNS checks pass
  • Sitemap submitted to Google Search Console
  • Client notified that the site is live
Next Step
Step 17: Post-Launch Monitoring
Entry Condition — Before starting this step
  • Step 16 Completion Gate satisfied
  • Site confirmed live at custom domain
17
Phase 5: Launch
Post-Launch Monitoring

Within 24 hours of launch, set up uptime monitoring and verify that Google has begun crawling the site. These steps take 30 minutes but provide ongoing protection and early warning of any issues.

Monitoring Setup

ToolSetupAlert Threshold
UptimeRobotAdd monitor for the homepage URL; set check interval to 5 minutesAlert on any downtime
Google Search ConsoleConfirm property is verified; check Coverage report for any indexing errorsAlert on coverage errors
Cloudflare AnalyticsConfirm traffic is being recorded in Cloudflare Pages analyticsVisual check only

48-Hour Check

Return to the site 48 hours after launch and run the following quick checks:

  1. Homepage loads correctly — no errors
  2. Contact form still submits correctly
  3. Google Search Console shows no new coverage errors
  4. UptimeRobot shows 100% uptime since launch
  5. Run a quick Google search for the business name — confirm the new site is indexed or indexing is in progress
Completion Gate — Required before moving to Step 18
  • UptimeRobot monitor active and showing green
  • Google Search Console verified and showing no coverage errors
  • 48-hour check completed with no issues found
Next Step
Step 18: GBP Sync
Entry Condition — Before starting this step
  • Step 17 Completion Gate satisfied
  • Client's Google Business Profile access confirmed (client must provide)
  • New website URL live and confirmed
18
Phase 6: Handoff
Google Business Profile Sync

The Google Business Profile (GBP) must be updated to reflect the new website and any information changes made during the build. NAP consistency between the website and GBP is a critical local SEO signal. This step is not optional.

GBP Update Checklist

FieldAction
Website URLUpdate to the new live domain
Business nameVerify exact match to website and client brief
Phone numberVerify exact match to website
AddressVerify exact match to website
Business hoursVerify exact match to website
Services listUpdate to match the services on the new website
Business descriptionUpdate to reflect the new website's About copy (150–750 characters)
PhotosUpload at least 3 new photos from the website gallery if available
If the client does not have a GBP or it is unclaimed, this is a critical issue that must be escalated immediately. An unclaimed GBP is a significant local SEO liability. Flag it and assist the client in claiming their profile before proceeding.
Completion Gate — Required before moving to Step 19
  • GBP website URL updated to new live domain
  • All GBP fields verified for NAP consistency with the website
  • GBP services list updated to match website
Next Step
Step 19: Quarterback Handoff
Entry Condition — Before starting this step
  • Step 18 Completion Gate satisfied
  • Quarterback assigned for this client
19
Phase 6: Handoff
Quarterback Handoff

The Quarterback Handoff transfers ownership of the client relationship from the build team to the ongoing account management team. The quarterback is responsible for the client's ongoing SEO, reporting, and relationship management. A complete handoff ensures nothing falls through the cracks.

Handoff Package

Prepare and deliver the following to the quarterback before this step is complete:

ItemDetails
Client briefThe completed brief from Step 1, updated with any changes made during the build
Live site URLThe final live domain
GitHub repo URLThe repo under dotcomdesigniowa for future updates
Cloudflare Pages project nameFor future deployments
SEO strategy URLThe live strategy site from Step 4
Keyword-city matrixThe full matrix for reporting reference
Domain registrar credentialsFrom Step 3 — transfer securely
Google Search Console accessConfirm quarterback has access
UptimeRobot monitorTransfer ownership or add quarterback as contact
Formspree accountConfirm form submissions are going to the right email
Notes on client personalityCommunication style, preferences, any sensitivities noted during the build
Completion Gate — Required before moving to Step 20
  • Full handoff package delivered to quarterback
  • Quarterback confirms receipt and has access to all tools and credentials
  • Client added to ongoing reporting and account management workflow
Next Step
Step 20: Ongoing Maintenance
Entry Condition — Before starting this step
  • Step 19 Completion Gate satisfied
  • Quarterback has confirmed receipt of full handoff package
  • Client is active on a monthly plan
20
Phase 6: Handoff
Ongoing Maintenance

Ongoing maintenance is the quarterback's responsibility from this point forward. The build team is no longer the primary contact. This page documents the recurring maintenance tasks that must be performed on every active client site.

Monthly Maintenance Tasks

TaskFrequencyNotes
Uptime checkMonthly reviewReview UptimeRobot report; investigate any downtime events
Google Search Console reviewMonthlyCheck for new coverage errors, manual actions, or performance drops
Contact form testMonthlySubmit a test entry; confirm receipt in Formspree
Domain expiration checkQuarterlyAlert client 90 days before expiration
SEO performance reportMonthlyPull keyword rankings and traffic data; send to client
GBP reviewMonthlyCheck for new reviews; flag any Q&A that needs response
Content updatesAs requestedNew photos, updated hours, new services — process through Manus
Annual visual QAAnnuallyFull visual QA pass to catch any display issues that have developed

Handling Update Requests

When a client requests a content update (new photos, changed hours, new service), the quarterback opens a new Manus task, provides the specific change request, and pushes the updated files to GitHub. Cloudflare Pages auto-deploys within 2 minutes. The client is notified when the update is live.

This is the final step. The build is complete.
  • Client is live, monitored, and in active account management
  • All 20 steps completed and documented
  • Quarterback is the primary point of contact going forward
Build Complete
Return to Command Center
This page is for internal reference only. Never share these credentials externally or commit them to a public GitHub repository.

Cloudflare

ItemLocation
Cloudflare Accountdotcomdesign.com Cloudflare account
API TokenStored in DD Playbook skill (SKILL.md)
Account IDStored in DD Playbook skill (SKILL.md)
Zone ID (dotcomdesignops.com)Stored in DD Playbook skill (SKILL.md)

GitHub

ItemLocation
Organizationdotcomdesigniowa
CLI AuthPre-authenticated in Manus via gh CLI
Repo naming convention[client-slug]-website (e.g., markuson-construction-website)

Formspree

ItemNotes
AccountOne Formspree account per client, or use the DD master account with project-specific forms
Form endpoint formathttps://formspree.io/f/[form-id]
Notification emailSet to the client's primary contact email

Marker.io Webhook — In Flight Bug Tracker

ItemValue / Notes
Webhook NameIn Flight - Playbook Bug Tracker
Webhook ID69c433808e1933ea9ffdc234
Webhook URLhttps://hub.dotcomdesignops.com/api/marker-webhook
Webhook Secretc90cc854acf3f8e9fe210a6f222f5bd4
EventissueCreated only
Issue type filterServer-side: only Bug type issues are processed; all other types are acknowledged and silently ignored
ScopeApplied to new-process sites only. Add each new site individually in Marker.io → Workspace Settings → Webhooks → edit this webhook. Do NOT enable “Apply to all websites.”
Currently applied toMarkuson Construction Inc. (pkwksk48w4c448ck8ksoo44k)
Secret stored inIn Flight app → Manus Secrets panel → MARKER_WEBHOOK_SECRET

Every new website build starts with a new Manus task. The opening prompt is critical — it loads the correct skills and sets the right context before the brief is submitted. Use the exact prompt below at the start of every build session.

Opening Prompt

Copy and paste this as the very first message in every new Manus build task. Replace the bracketed fields with the client's information.

MANUS OPENING PROMPT — COPY THIS EXACTLY
You are building a client website for Dotcom Design.

Before doing anything else, read the following skills:
1. /home/ubuntu/skills/dd-playbook/SKILL.md
2. /home/ubuntu/skills/dotcom-design-brand/SKILL.md
3. /home/ubuntu/skills/static-site-launch-optimizer/SKILL.md

After reading all three skills, confirm you have read them and are
ready to receive the client brief.

Client: [CLIENT BUSINESS NAME]
Build type: Static HTML/CSS/JS website
Hosting: Cloudflare Pages
Stack: Pure HTML, CSS, vanilla JS — no frameworks, no CMS

After the Opening Prompt

Wait for Manus to confirm it has read all three skills. Then submit the full client brief (all eight sections from Step 5). Do not submit the brief in the same message as the opening prompt — send them separately so Manus has time to load the skills before processing the brief.

During the Build

Stay engaged during the build. Review each page as Manus builds it. Catch issues early rather than waiting for the full site to be assembled. If Manus produces something that does not match the brief, correct it immediately with a specific instruction rather than waiting until the end.

Useful Mid-Build Commands

SituationWhat to Say
Page looks wrong"The [page name] hero section doesn't match the brief. The headline should be [correct headline]. Please fix and show me the updated version."
Missing section"The homepage is missing the trust bar section. Please add it between the hero and the services grid, using the trust signals from the brief: [list them]."
Wrong tone"The copy on the About page is too generic. Based on the slider scores (Voice: 8/10 Authoritative), please rewrite it to sound more expert and confident."
Image issues"Please convert all images to WebP format and confirm they are all using loading='lazy' except the hero image."
Mobile issue"At 375px the navigation is overflowing. Please fix the mobile nav to use a hamburger menu with a full-screen overlay."

This is the full client brief template. Fill in every field before submitting to Manus. Do not leave any field blank. Submit this as the second message in the Manus task, after the opening prompt has been acknowledged.

CLIENT BRIEF TEMPLATE — FILL IN ALL FIELDS
## CLIENT BRIEF

### SECTION 1: BUSINESS IDENTITY
Business Name (exact): 
Phone Number: 
Address: 
City, State, ZIP: 
Business Hours: 
  Monday: 
  Tuesday: 
  Wednesday: 
  Thursday: 
  Friday: 
  Saturday: 
  Sunday: 
Years in Business: 
License Number(s): 
Bonded: Yes / No
Insured: Yes / No

### SECTION 2: SERVICE AREA
Primary City: 
All Cities/Counties Served: 
HQ City (for schema): 

### SECTION 3: SERVICES
Primary Services (most important first):
1. 
2. 
3. 
4. 
5. 

Secondary Services:
1. 
2. 
3. 

### SECTION 4: DESIGN DIRECTION
Design Sliders (1-10):
  Style (Classic → Modern): 
  Tone (Light → Dark): 
  Complexity (Simple → Rich): 
  Voice (Friendly → Authoritative): 
  Market Position (Economical → Premium): 
  Aesthetic (Polished → Gritty): 

Reference Site URL (a site they like): 
Color Preferences (if any): 
Font Preferences (if any): 

### SECTION 5: CONTENT ASSETS
Logo File Location: 
Photos Available: Yes / No
  If Yes, count: 
  If Yes, location: 
Testimonials:
  1. "[text]" — [Name], [Source]
  2. "[text]" — [Name], [Source]
  3. "[text]" — [Name], [Source]
Team Members (if applicable):
  Name, Title, Bio: 

### SECTION 6: TRUST SIGNALS
Years in Business: 
License Number(s): 
Certifications/Awards: 
Industry Associations: 
Notable Differentiators: 

### SECTION 7: SEO MATRIX
[PASTE FULL KEYWORD-CITY MATRIX FROM SEO PORTAL HERE]

### SECTION 8: SPECIAL INSTRUCTIONS
[Any unique requirements, specific pages requested, content to preserve,
integrations needed, or anything else the build team should know]