ForgeKitFORGEKIT

Build Log

MedinaCHF — user guides, warm redesign, and a real deploy-gate collision

July 31, 2026

Three screenshot-driven user guides, a full member/coordinator visual redesign, a personalized AI-template welcome message, two real production account-linking bugs fixed live, and a genuine Deploy Gate vs. concurrent-session race that took 7 stash attempts to resolve honestly.

MedinaCHFVerticalDeployUX
3
new user guides shipped (FAQ, member, coordinator) with real Playwright-captured screenshots
14
member + coordinator pages redesigned with a warm header component
3
production deploys this session — guides+redesign, PWA orientation fix, homepage CTA fix
3
real production bugs found and fixed live (route-matcher block, 2x Clerk account-linking, portrait-lock)

Timeline

Start
Screenshot-driven guides requested
General/FAQ, member, coordinator — best-in-class research first
+1hr
Playwright + @clerk/testing infra built
Reused Alloy's proven auth-token pattern; new to medinaCHF
+2hr
3 guides shipped, deployed
Real screenshots, shared GuideStep/GuideShell components
+2.5hr
Guide redesign — 3 rounds
Too narrow -> full-bleed wide -> 3-nav-bar pileup -> pill-style TOC
+3hr
Member Home + all 14 pages redesigned
Warm header component, AI-template welcome message
+3.5hr
Real prod bug: Zeb's /member redirect loop
Coordinator account predated member schema, no linked family
+4hr
Second real prod bug: dev vs prod Clerk instance
Fix applied to dev instance user id, not the real prod one
+4.5hr
Deploy Gate vs. concurrent Alloy session
7 stash attempts before the other session was paused
+5hr
Two follow-up fixes deployed
PWA orientation lock removed; homepage CTA replaced

What shipped

products/medinaCHF/ — 3 user guides: app/resources/faq/page.tsx (public), app/member/guide/page.tsx, app/coordinator/guide/page.tsx — shared GuideStep/GuideShell/FaqAccordion components (components/guide/)

products/medinaCHF/ — Playwright + @clerk/testing screenshot harness: playwright.config.ts, tests/e2e/global.setup.ts (reuses Alloy's clerk.signIn() ticket-auth pattern), tests/e2e/guide-shots-{public,member,coordinator}.spec.ts

products/medinaCHF/ — scripts/seed-guide-shots.mjs + cleanup-guide-shots.mjs — idempotent sample-data seed/teardown for screenshot capture, never touching real family data

products/medinaCHF/ — components/MemberPageHeader.tsx + components/coordinator/CoordinatorPageHeader.tsx — warm color-band+icon header, applied to all 14 member/coordinator pages replacing bare <h1>

products/medinaCHF/ — lib/welcome-messages.ts (100-template personalized-welcome pool) + lib/queries/member-home.ts (signed-in adult's first name) — Member Home redesigned with a full-bleed photo hero + name-driven welcome, no per-visit AI cost

products/medinaCHF/proxy.ts — fixed /resources exact-match route blocking the new /resources/faq guide

products/medinaCHF/public/manifest.json — removed "orientation": "portrait-primary", which locked the installed PWA to portrait-only

products/medinaCHF/app/page.tsx — replaced homepage 'Find an Event' CTA (-> /events, a static placeholder-dates page) with 'Membership Details' (-> /community), since real event browsing is member-only

products/medinaCHF/app/connect/page.tsx — removed an inaccurate 'come say hello at our events' claim per Zeb's direct correction (Content & Copy Gate)

Real production data fixes (direct DB writes, not schema changes): deleted a stale 'Test Family' whose adult row pointed at a Clerk user id that no longer existed; linked Zeb's real Clerk user id (both dev-instance and, after a second round, the actual prod-instance id) and Courtney's real prod Clerk user id to 'The Jungeberg Family'; renamed that family from 'Courtney Jungeberg' to 'The Jungeberg Family'