PeakPOS Marketing Website Implementation Plan
Date: 2026-02-25
Source requirements: PeakPOS_Website_Dev_Brief.pdf (provided outside repo)
Execution branch: jn/peakpos-website-plan
1. Scope
This plan updates the Next.js marketing site at apps/websites/main-website to match the development brief.
Includes:
- Public page architecture and routing (P0, P1, P2)
- Homepage structure and required copy blocks
- Demo funnel (
/demo,/demo/confirmed) and data capture contract - Brand token migration (color, typography, logo constraints)
- Footer/nav alignment
- Website-side integration points required by AI bot workflows
Excludes for this branch:
- Building full HubSpot/Zapier automations end-to-end
- Producing final legal copy or design assets not yet delivered
- Merchant/support portal product changes
1.1 Decision Log (2026-02-25)
Resolved decisions from stakeholder input:
- Primary domain:
trypeakpos.com. - Pricing page: do not publish pricing yet.
- CRM direction: HubSpot-first.
- Testimonial handling: keep placeholder copy until real merchant quote is available.
- Legal owner reference: Pinpoint POS.
- Footer attribution line:
Powered by Myriad Ventures(override from brief text). - PDF hosting decision delegated to dev team: implement with a single managed object store path.
- Analytics baseline: Firebase Analytics already exists in current site bootstrap.
Still pending:
- Certification platform choice for Bot #2 (Teachable vs alternative).
- Final contact email inbox value for footer and outbound confirmations.
- Final logo/badge asset delivery dates and files.
2. Current State Summary (Code Audit)
Main findings in current implementation:
- Homepage (
app/page.tsx) is composed of generic B2B sections and does not match required hero, trust bar, stat callouts, vertical navigation, testimonial, or exact CTA behavior. - Demo flow is currently
/contact+POST /api/request-demo; required flow is/demo+/demo/confirmedwith a different field contract. - Required vertical landing pages do not exist.
- Brand tokens do not match brief (
#1742FFand Geist/Inter are currently used; brief specifies navy/teal palette and Arial). - Footer/nav information architecture differs from required links.
- Some required pages exist but with placeholder content that does not match brief-specific messaging.
3. Requirements-to-Work Mapping
3.1 P0 launch pages
Required now:
//vape-shop-pos/smoke-shop-pos/liquor-store-pos/demo/demo/confirmed
Implementation actions:
- Create route files:
apps/websites/main-website/app/vape-shop-pos/page.tsxapps/websites/main-website/app/smoke-shop-pos/page.tsxapps/websites/main-website/app/liquor-store-pos/page.tsxapps/websites/main-website/app/demo/page.tsxapps/websites/main-website/app/demo/confirmed/page.tsx
- Keep
/contacttemporarily as a 301/308 redirect to/demoto preserve any existing links.
3.2 Homepage required sections
Replace current section stack with required sequence:
- Problem-first hero (single CTA to
/demo) - Trust bar (brand attribution + award badge + founding merchants; attribution text updated to Myriad Ventures per stakeholder direction)
- 3 stat callouts with source labels
- Vertical navigation cards for vape/smoke/liquor
- Social proof/testimonial block (real quote or required placeholder)
- Secondary CTA (Book a Demo)
- Footer with required nav/legal/contact/copyright
Implementation actions:
- Rework
apps/websites/main-website/app/page.tsxto use a new homepage composition. - Replace or retire generic components:
components/hero.tsxcomponents/logo-marquee.tsxcomponents/features.tsxcomponents/showcase.tsxcomponents/metrics.tsxcomponents/cta-section.tsx
- Add new components for strict brief alignment:
components/home/home-hero.tsxcomponents/home/home-trust-bar.tsxcomponents/home/home-stat-callouts.tsxcomponents/home/home-vertical-nav.tsxcomponents/home/home-testimonial.tsxcomponents/home/home-secondary-cta.tsx
3.3 Demo form + backend payload contract
Brief-required form fields:
firstName(required)lastName(required)storeName(required)businessType(required enum: Vape Shop / Smoke Shop / Liquor Store / Other)state(required enum: 50 states)phone(required)email(required)heardAboutUs(optional enum)
Implementation actions:
- Replace current
/contactUX with/demoform UX. - Update parsing contract in
apps/websites/main-website/lib/request-demo.ts. - Update API route in
apps/websites/main-website/app/api/request-demo/route.tsto emit new fields to webhook/CRM. - Add submission redirect to
/demo/confirmed. - Add deterministic payload format for CRM workflow routing (business-type based PDF selection).
3.4 P1/P2 route backlog
P1 (Month 2):
/features/pricing(hold publish until pricing approved)/certified-agents/aboutrewrite to founding story + Pinpoint trust
P2 (Month 3+):
/blog/compliance/state-guide/compliance/age-verification/resources/inventory-management/resources/payment-processing/compare/soundpos
Implementation actions:
- Add the missing route files now as planned placeholders with production-ready structure and metadata.
- Gate unfinished pages with explicit publish flags if needed (for example pricing).
4. Brand System Migration
Required token migration:
- Colors:
#1F3864,#2E75B6,#00B0A0,#D5E8F0,#C00000,#FFFFFF - Typography: Arial scale and weights per brief
- CTA styling: primary CTA uses Peak Teal with white text
Implementation actions:
- Update
apps/websites/main-website/app/globals.csswith--peak-*variables and semantic aliases. - Update
apps/websites/main-website/app/layout.tsxto remove conflicting type ramp assumptions and set Arial-first stack. - Refactor
components/navbar.tsxandcomponents/footer.tsxto consume new tokens. - Add temporary logo placeholders with strict dimensions/contrast until final design assets are delivered.
5. Navigation and Footer Alignment
Required footer links:
- Features, Pricing, Certified Agents, About, Blog
- Privacy Policy, Terms of Service
- Contact email (pending owner decision)
- "Powered by Myriad Ventures" + copyright for Pinpoint POS
Implementation actions:
- Replace current footer matrix in
components/footer.tsxwith brief-specific footer sections. - Update
components/navbar.tsxto prioritize launch route set and/demoCTA. - Add merchant portal login link in nav/footer where appropriate.
6. AI Bot and Automation Integration Plan (Website Dependencies)
The website branch will deliver integration-ready contracts, while automation workflows are configured separately.
Website-side deliverables:
- Stable demo submission payload schema for HubSpot/Zapier triggers.
- Business type normalization for PDF branching logic.
- Confirmation page + conversion event emitters (using existing Firebase Analytics bootstrap).
- Config surface for CRM endpoints and environment keys in:
apps/websites/main-website/next.config.js.envdocs inapps/websites/main-website/README.md
- Asset URL contract for PDF attachments stored in Cloud Storage under a stable prefix (for example
gs://peakpos-marketing-assets/demo-briefs/*mirrored to public HTTPS URLs consumed by HubSpot workflow steps).
External workflow tracks (non-website code):
- Bot #1 Podcast Outreach (Google Sheet + Zapier + Claude)
- Bot #2 Agent Certification Issuance
- Bot #3 Demo Booking Confirmation automation
- Bot #4 Referral tracking automation
- Bot #5 Compliance brief generation API workflow
7. Delivery Phases
Phase 0: Content and decision lock (blocker clearing)
- Confirm webhook auth pattern and property mapping inside HubSpot.
- Confirm contact email for footer and confirmation sends.
- Confirm legal pages source text owned by Pinpoint POS.
- Confirm asset package from designer (logo/badges).
- Confirm certification platform for Bot #2.
Phase 1: P0 website launch implementation
- Homepage rebuild with required sections/copy.
- Vertical pages build (
/vape-shop-pos,/smoke-shop-pos,/liquor-store-pos). - Demo flow rebuild (
/demo,/demo/confirmed, payload parser + API route). - Nav/footer and token migration.
- Route compatibility redirects.
Phase 2: P1 page rollout
/features,/certified-agents,/aboutrewrite,/pricingremains unpublished until explicit approval.- Agent portal handoff link placement.
Phase 3: P2 SEO and comparison content
- Compliance/resource pillar pages.
- SoundPOS comparison page.
- Blog structure for ongoing content.
Phase 4: Automation production hardening
- End-to-end test with CRM + email + attachments.
- Alerting for failed webhook deliveries.
- Attribution and referral validation.
8. QA and Acceptance Checklist
Functional:
- All required P0 routes render and pass manual navigation checks.
- Hero CTA and secondary CTA both resolve to
/demo. - Demo form validates all required fields and rejects invalid enums/states.
- Successful submit lands on
/demo/confirmedand payload is delivered to configured endpoint.
Content and design:
- Homepage headline remains problem-first.
- No competing hero CTA.
- Required trust/stat/copy blocks present verbatim where specified.
- Typography/colors follow brief token set.
Engineering:
bazel run //apps/websites/main-website:buildbazel test //apps/websites/main-website:testbazel run //apps/websites/main-website:startsmoke check
Analytics and compliance:
- Demo submission conversion event fires.
- Privacy and Terms links visible from footer on all pages.
- Placeholder markers remain only where explicitly approved (testimonial, award badge, merchant logos, pricing).
- Footer attribution line uses
Powered by Myriad Ventures.
9. Open Decisions (Must Resolve Before Full Build)
- Certification platform (Teachable or alternative).
- Final logo/badge asset delivery dates and approved files.
- Templating tool for co-branded agent PDF.
- Referral link system of record.
- Final contact inbox for footer and transactional messages.
- HubSpot workflow ownership for automation operations.
10. Execution Order Recommendation
- Close remaining blocker decisions in Section 9.
- Implement Phase 1 completely and ship as launch candidate.
- Validate conversion path and CRM/webhook delivery in staging.
- Release P1 and P2 in controlled follow-up milestones.