# Deployment launch plan for RidgeQuote

A production handoff plan for taking Roofing Estimator from sales preview to a client-owned launch domain with Netlify hosting, environment gates, monitoring, rollback, and canonical SEO/AEO checks.

Repository: Idea-R/ideas-realized-page
Preview domain: roofing-estimator.ideas-realized.com
Production domain: roofing-estimator.ideas-realized.com
JSON manifest: /demo-library/roofing-estimator/deployment-launch.json
OpenAPI implementation spec: /demo-library/roofing-estimator/openapi.json

## Hosting Model

Single Next.js application deployed from GitHub to Netlify, with demo subdomains rewritten into app-only routes and canonical SEO pages kept on ideas-realized.com.

## Branch Strategy

Ship from a reviewed feature branch into the existing Netlify production site, then attach the selected client subdomain as a named domain alias after acceptance gates pass.

## Environments

### Sales preview

URL: https://roofing-estimator.ideas-realized.com
Status: complete
Purpose: App-only demo surface used in sales calls and embedded from the canonical landing page.
Data mode: Seeded client-side preview data only; no tenant secrets or live customer records.

### Deploy preview

URL: Netlify deploy preview URL from the feature branch
Status: in progress
Purpose: Review branch before domain aliasing, schema checks, browser QA, and stakeholder sign-off.
Data mode: Seeded demo data plus import template samples.

### Pilot production

URL: https://roofing-estimator.ideas-realized.com
Status: queued
Purpose: Roofing estimate and proposal software pilot package launch for the first buyer cohort.
Data mode: Load a controlled roof-system price book, validate markup math with the sales manager, then let reps build review-ready estimates while proposal export remains template-based.

## Domain And DNS Records

- [ready] CNAME roofing-estimator.ideas-realized.com -> Ideas Realized Netlify site alias or wildcard domain. Owner: Ideas Realized technical lead. Keeps the app-only demo available as the sales URL while the canonical page remains on ideas-realized.com.
- [needs client] CNAME roofing-estimator.ideas-realized.com -> Client DNS points to the approved Netlify site alias. Owner: Client DNS owner. Use estimates.clientdomain.com or proposals.clientdomain.com for production and keep roofing-estimator.ideas-realized.com as the sales preview.
- [needs client] TXT _netlify.roofing-estimator.ideas-realized.com -> Netlify verification token issued during domain setup. Owner: Client DNS owner. Required before SSL issuance and production cutover when the domain is client-owned.

## Environment Variables

- [template] NEXT_PUBLIC_SITE_URL (Build and runtime). Owner: Ideas Realized technical lead. Set to https://roofing-estimator.ideas-realized.com for pilot production and keep canonical demo routes pointed at ideas-realized.com.
- [ready] NEXT_DISABLE_IMAGE_OPTIMIZATION (Netlify runtime). Owner: Ideas Realized technical lead. Use when the host requires unoptimized Next images for generated poster assets and demo previews.
- [needs client] AUTH_PROVIDER_CONFIG (Runtime secret). Owner: Implementation lead. Sales team email login for pilot users, with customer proposal links isolated from staff workspaces.
- [template] NOTIFICATION_SENDER (Runtime secret). Owner: Implementation lead. In-app: Estimate needs margin approval
- [template] ANALYTICS_WRITE_KEY (Runtime secret). Owner: Growth lead. Instrument roofing estimator landing CTA, app preview, estimate edit, margin approval, price-book drift review, proposal export, and spec download.

## Release Gates

- [complete] Update roof scope and recalculate margin. Owner: Estimator. Evidence: Scope, sell price, and gross margin update together.
- [in progress] Block proposal send under margin floor. Owner: Sales manager. Evidence: Approval checks are visible; send gate needs production workflow.
- [queued] Assemble branded proposal packet. Owner: Sales lead. Evidence: Proposal sections exist; PDF output provider is not selected.
- [complete] Canonical and noindex routing verified. Owner: Technical lead. Evidence: Main-domain landing pages remain canonical while app-only routes are used for subdomain launch URLs.
- [queued] Client proposal and implementation spec approved. Owner: Client sponsor. Evidence: RidgeQuote pilot proposal and JSON/Markdown implementation spec are reviewed before production domain cutover.

## Monitoring Signals

- Demo app availability: Homepage and app route return 200 from production domain after DNS cutover. Owner: Technical lead. Response: Rollback DNS alias to preview or pause launch announcement until the route passes.
- Proposal packets generated with approved margin and current price-book evidence: Pilot usage is visible in the buyer dashboard within the first review cycle. Owner: Growth lead. Response: Review analytics key, event mapping, and privacy guardrails before widening access.
- Client-specific price book and warranty language are required.: No open launch blocker can affect first user workflow. Owner: Implementation lead. Response: Hold go-live and keep the app in preview mode until the blocker has owner-approved evidence.

## Rollback Plan

- Keep the sales preview subdomain live until the client production domain passes route, SSL, auth, and acceptance checks.
- If client DNS or SSL fails, remove the production alias and route users back to the preview subdomain.
- If data import fails, restore the last approved seed/import snapshot and hold workflow edits until the exception report is reviewed.
- If notification or integration credentials fail, disable outbound automation and continue with manual review queues.
- Document the rollback decision in the operations ledger and add the next action to the live ops command center.

## Go-Live Sequence

- Merge the reviewed branch after typecheck, lint, build, schema validation, and browser QA pass.
- Create or confirm the Netlify domain alias for the sales preview subdomain.
- Request client DNS records for roofing-estimator.ideas-realized.com and verify ownership before SSL issuance.
- Load tenant brand tokens, roles, launch assets, import templates, and acceptance evidence.
- Run release gates, verify monitoring signals, and approve the first pilot user cohort.
- Publish SEO/AEO links for Roofing estimating software and route launch CTAs to the canonical demo landing page.

## Support Handoff

- Pilot support scope: $900-$3.2k/month recurring for hosting, support, and workflow tuning.
- Price-book import template
- Margin approval rule sheet
- Proposal packet sample
- Select first roof package: Sales manager; Pilot with one common shingle package and target margin floor.
- Approve price book formulas: Estimator lead; Finalize material, labor, waste, markup, and warranty formulas.

## SEO Launch Checks

- /demo-library/roofing-estimator remains the canonical landing page for roofing estimating software.
- https://roofing-estimator.ideas-realized.com remains app-only and noindex for thin duplicate prevention.
- Confirm internal links mention roofing proposal software.
- Confirm internal links mention roofing estimate calculator app.
- Confirm internal links mention roofing sales workflow software.
- Answer target: What should roofing estimating software include?
- Answer target: How do roofing contractors control estimate margins?
