diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 45cfe22..23fe18b 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -7,10 +7,10 @@ ### Marketing Site -- [ ] **MKTG-01**: Visitor sees a hero section with Teressa's professional photo and warm introductory bio -- [ ] **MKTG-02**: Visitor sees a "listings coming soon" placeholder section (full WFRMLS listings integration deferred to v2 pending vendor API enrollment) -- [ ] **MKTG-03**: Visitor can submit a contact form with name, email, phone, and message -- [ ] **MKTG-04**: Visitor sees a testimonials section with client reviews on the homepage +- [x] **MKTG-01**: Visitor sees a hero section with Teressa's professional photo and warm introductory bio +- [x] **MKTG-02**: Visitor sees a "listings coming soon" placeholder section (full WFRMLS listings integration deferred to v2 pending vendor API enrollment) +- [x] **MKTG-03**: Visitor can submit a contact form with name, email, phone, and message +- [x] **MKTG-04**: Visitor sees a testimonials section with client reviews on the homepage ### Authentication @@ -110,10 +110,10 @@ Which phases cover which requirements. Updated during roadmap creation. | AUTH-02 | Phase 1 | Complete | | AUTH-03 | Phase 1 | Complete | | AUTH-04 | Phase 1 | Complete | -| MKTG-01 | Phase 2 | Pending | -| MKTG-02 | Phase 2 | Pending | -| MKTG-03 | Phase 2 | Pending | -| MKTG-04 | Phase 2 | Pending | +| MKTG-01 | Phase 2 | Complete | +| MKTG-02 | Phase 2 | Complete | +| MKTG-03 | Phase 2 | Complete | +| MKTG-04 | Phase 2 | Complete | | CLIENT-01 | Phase 3 | Pending | | CLIENT-02 | Phase 3 | Pending | | CLIENT-03 | Phase 3 | Pending | diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 3e467e0..fc0d1c2 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -48,9 +48,12 @@ Plans: 2. Visitor sees a testimonials section with client reviews on the homepage 3. Visitor sees a "listings coming soon" placeholder section (full WFRMLS listings deferred to v2) 4. Visitor can submit a contact form with name, email, phone, and message — and the submission is received -**Plans**: TBD +**Plans**: 3 plans -Plans: none yet +Plans: +- [ ] 02-01-PLAN.md — Static page shell: sticky nav, split-panel hero, testimonials carousel, listings placeholder, footer +- [ ] 02-02-PLAN.md — Contact form: Nodemailer SMTP mailer, server action with Zod + honeypot, ContactSection client component +- [ ] 02-03-PLAN.md — Human verification checkpoint: full homepage review across all four MKTG requirements ### Phase 3: Agent Portal Shell **Goal**: Agent can manage clients and see all documents with their current status at a glance @@ -128,7 +131,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 | Phase | Plans Complete | Status | Completed | |-------|----------------|--------|-----------| | 1. Foundation | 1/3 | Complete | 2026-03-19 | -| 2. Marketing Site | 0/? | Not started | - | +| 2. Marketing Site | 2/3 | In Progress| | | 3. Agent Portal Shell | 0/? | Not started | - | | 4. PDF Ingest | 0/? | Not started | - | | 5. PDF Fill and Field Mapping | 0/? | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index 5cb05a8..ce03997 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -3,12 +3,12 @@ gsd_state_version: 1.0 milestone: v1.0 milestone_name: milestone status: unknown -last_updated: "2026-03-19T20:34:50.849Z" +last_updated: "2026-03-19T21:03:39.146Z" progress: - total_phases: 1 + total_phases: 2 completed_phases: 1 - total_plans: 3 - completed_plans: 3 + total_plans: 6 + completed_plans: 5 --- # Project State @@ -18,16 +18,16 @@ progress: See: .planning/PROJECT.md (updated 2026-03-19) **Core value:** Teressa can prepare and send any real estate form to a client for signing in minutes, from her browser, without leaving her site. -**Current focus:** Phase 1 - Foundation +**Current focus:** Phase 2 - Marketing Site ## Current Position -Phase: 1 of 7 (Foundation) -Plan: 2 of 3 in current phase +Phase: 2 of 7 (Marketing Site) +Plan: 2 of 3 in current phase (02-01 and 02-02 complete) Status: In progress -Last activity: 2026-03-19 — Plan 01-02 complete: Branded login page, agent dashboard stub, logout mechanism +Last activity: 2026-03-19 — Plan 02-01 complete: Marketing site shell — sticky nav, hero, testimonials carousel, listings placeholder, footer -Progress: [██░░░░░░░░] 8% +Progress: [███░░░░░░░] 24% ## Performance Metrics @@ -41,12 +41,14 @@ Progress: [██░░░░░░░░] 8% | Phase | Plans | Total | Avg/Plan | |-------|-------|-------|----------| | 01-foundation | 2/3 | 8 min | 4 min | +| 02-marketing-site | 2/3 | 8 min | 4 min | **Recent Trend:** -- Last 5 plans: 01-01 (6 min), 01-02 (2 min) -- Trend: faster +- Last 5 plans: 01-01 (6 min), 01-02 (2 min), 02-01 (4 min), 02-02 (4 min) +- Trend: stable *Updated after each plan completion* +| Phase 02-marketing-site P01 | 5 | 2 tasks | 8 files | ## Accumulated Context @@ -65,6 +67,11 @@ Recent decisions affecting current work: - [Phase 01-foundation 01-02]: PasswordField extracted as co-located client sub-component — keeps login page.tsx as pure server component - [Phase 01-foundation 01-02]: loginAction re-throws non-AuthError (NEXT_REDIRECT must bubble) — critical Auth.js v5 server action pattern - [Phase 01-foundation 01-02]: Brand colors applied via inline style props — Tailwind JIT may miss one-off hex values +- [Phase 02-marketing-site]: CSS hover classes in server components — onMouseEnter/onMouseLeave not valid in server component props; use className with style blocks instead +- [Phase 02-marketing-site]: lucide-react installed for marketing site icons (Home, Menu, X, ChevronLeft, ChevronRight) +- [Phase 02-marketing-site 02-02]: nodemailer pinned to ^7.0.7 — v8 conflicts with next-auth@5.0.0-beta.30 peerOptional dep +- [Phase 02-marketing-site 02-02]: useActionState imported from 'react' not 'react-dom' — React 19 canonical API (useFormState removed in React 19) +- [Phase 02-marketing-site 02-02]: Honeypot silent success pattern — bots receive status:success without email sent, preventing bot discovery of rejection ### Pending Todos @@ -81,5 +88,5 @@ None yet. ## Session Continuity Last session: 2026-03-19 -Stopped at: Completed 01-02-PLAN.md — Branded login UI, agent portal layout, dashboard stub, logout mechanism +Stopped at: Completed 02-01-PLAN.md — Marketing site shell: sticky nav, hero section with next/image, testimonials carousel, listings placeholder, site footer Resume file: None diff --git a/.planning/phases/02-marketing-site/02-01-SUMMARY.md b/.planning/phases/02-marketing-site/02-01-SUMMARY.md new file mode 100644 index 0000000..d7e7320 --- /dev/null +++ b/.planning/phases/02-marketing-site/02-01-SUMMARY.md @@ -0,0 +1,145 @@ +--- +phase: 02-marketing-site +plan: 01 +subsystem: ui +tags: [react, nextjs, lucide-react, testimonials, carousel, sticky-nav, hero] + +# Dependency graph +requires: + - phase: 01-foundation + provides: Next.js app router setup, globals.css, layout.tsx, page.tsx scaffold +provides: + - Sticky navy nav with desktop links and mobile hamburger + - Split-panel hero section with next/image and brand CTA + - Auto-rotating testimonials carousel with arrow/dot controls + - Listings Coming Soon placeholder section with brand colors + - Site footer with license number and copyright + - Public homepage composed from all marketing section components +affects: + - 02-contact-form + - 02-listings + - future-brand-refinement + +# Tech tracking +tech-stack: + added: [lucide-react] + patterns: + - CSS hover classes in server components (no event handlers — required for server component compatibility) + - _components directory convention for route-co-located components + - inline