Build Log · July 31, 2026
MedinaCHF — user guides, warm redesign, and a real deploy-gate collision
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.
- MedinaCHF
- Vertical
- Deploy
- UX
- new user guides shipped (FAQ, member, coordinator) with real Playwright-captured screenshots
- 3
- member + coordinator pages redesigned with a warm header component
- 14
- 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)
- 3
new user guides shipped (FAQ, member, coordinator) with real Playwright-captured screenshots
member + coordinator pages redesigned with a warm header component
production deploys this session — guides+redesign, PWA orientation fix, homepage CTA fix
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'