Deploy path
- Commit changes on a feature branch (e.g.
cnsvs-net-buildout). - Open PR → review → merge to
main. - Vercel git integration auto-deploys production from
main. - Manual:
vercel deploy --prodfrom a machine with project access.
Preview deployments are created per PR/branch for visual QA before merge.
How to edit a page
- Open the HTML file in the repo root or
docs/. - Keep the design system: palette vars, header/footer patterns from
index.html/clinical-practice.html. - No external fonts/CDNs. Inline CSS only. Keep each page lightweight.
- Preserve compliance copy rules (no diagnostic claims; demo attestation; patients handoff language).
- If the page is ad-funded, keep
meta robots noindexand robots.txt Disallow entry. - Include Umami snippet + GTM/GA4 placeholders; include UTM capture script on marketing pages.
Adding a new landing page
- Copy a persona page skeleton (hero → how it works → report → CPT → proof → dual CTA → escape → FAQ).
- Add nav/footer links from home if it should be discoverable.
- Update
robots.txtand/docs/adsdestination map. - Pass UTMs in ad traffic:
?utm_source=…&utm_medium=…&utm_campaign=…
Rollback
- Vercel dashboard: Deployments → promote a previous production deployment.
- Git: revert the merge commit on
mainand push (triggers redeploy).
Form / API notes
api/demo.js is the only serverless runtime code. Changing the demo contract requires coordinating with Dave (green-list + Salesforce). Do not load-test demo.php.
DNS (Phase 2)
Point cnsvs.net at Vercel when Dave adds records. Until then, previews validate pages on Vercel URLs.
Team bar
Every page includes <script defer src="/team-bar.js"> — a slim campaign overlay for Mark, Alan, and JSJD. Normal visitors never see it.
- Unlock: open any page with
#teamin the URL (e.g.https://cnsvs.net/demo#team). Enter the shared passphrase when prompted. On success,localStorage.cnsvs_team=1keeps the bar visible across pages. - Lock: open any page with
#team-off, or clear the localStorage flag. The bar is removed immediately. - What it shows: current page title, campaign chips (status colors), avatar, goal, a dropdown of all mapped pages, and an expandable panel with campaigns, problems, notes, and links to edit the page map / marketing docs / analytics.
- Convenience gate only — not security.
marketing/pages.jsonis public-readable by design; put nothing sensitive in it. When locked, the script does no fetch and no DOM work (no Core Web Vitals impact for visitors).
Edit the page↔campaign mapping in marketing/pages.json. Browse the full database at /docs/marketing.
