Skip to content

v3.0.0 — Growth Surface: Landing Page + PostHog Funnel

Choose a tag to compare

@deepan-mehta-analytics deepan-mehta-analytics released this 31 May 08:40

🏠 StayOps — v3.0.0

Phase 3 complete. The public-facing growth surface is live at the root URL — a premium marketing landing page with PostHog funnel tracking, UTM attribution, and lead capture into Supabase.


What's included

Route group architecture

  • app/(marketing)/ — public landing page at /, light-only, Poppins font, OG meta
  • app/(app)/ — ops console at /dashboard, /bookings, /reconciliation, /reports (URLs unchanged)
  • Root app/layout.tsx slimmed to bare font shell; each group has its own layout

Landing page sections

Section Component Notes
Sticky nav MarketingNav Scroll-to-anchor links, transparent overlay on dark hero
Hero Hero Dark slate/blue-950 gradient mesh, floating glassmorphic card, animated pulse dot
Metrics strip MetricsStrip IntersectionObserver count-up animation (86+ bookings, 5 conflict types, 3 channels)
Features grid FeaturesGrid 6 cards with Lucide icons, stagger entrance animation
How it works HowItWorks 3-step numbered flow with dashed connector
Social proof SocialProof Testimonial card with 5-star rating
Lead form LeadForm PostHog funnel events, honeypot spam guard, optional fields

PostHog funnel events

Event When
landing_page_viewed Auto-captured on init
form_start First focus on email field
form_submit_attempt Submit clicked
lead_created 201 response — conversion
form_error API error

Leads API

  • POST /api/leads — Zod validation, honeypot guard (silent 200), Drizzle insert
  • 4 TDD tests: valid email, honeypot, invalid email, optional field passthrough
  • Schema: property_count + channels_used added to leads table (Migration 0003)

Test suite

File Tests
lib/reconciliation.test.ts 8
lib/ai-agent.test.ts 8
lib/weekly-report.test.ts 7
lib/leads-api.test.ts 4 (new)
Total 27

CI: run 26707895559 — both jobs green.


Roadmap

  • v4.0.0 — Phase 4 portfolio polish: integration tests, Playwright E2E, README screenshots