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

new user guides shipped (FAQ, member, coordinator) with real Playwright-captured screenshots

member + coordinator pages redesigned with a warm header component
14

member + coordinator pages redesigned with a warm header component

production deploys this session — guides+redesign, PWA orientation fix, homepage CTA fix
3

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)
3

real production bugs found and fixed live (route-matcher block, 2x Clerk account-linking, portrait-lock)

Timeline

  1. Start

    Screenshot-driven guides requested

    General/FAQ, member, coordinator — best-in-class research first

  2. +1hr

    Playwright + @clerk/testing infra built

    Reused Alloy's proven auth-token pattern; new to medinaCHF

  3. +2hr

    3 guides shipped, deployed

    Real screenshots, shared GuideStep/GuideShell components

  4. +2.5hr

    Guide redesign — 3 rounds

    Too narrow -> full-bleed wide -> 3-nav-bar pileup -> pill-style TOC

  5. +3hr

    Member Home + all 14 pages redesigned

    Warm header component, AI-template welcome message

  6. +3.5hr

    Real prod bug: Zeb's /member redirect loop

    Coordinator account predated member schema, no linked family

  7. +4hr

    Second real prod bug: dev vs prod Clerk instance

    Fix applied to dev instance user id, not the real prod one

  8. +4.5hr

    Deploy Gate vs. concurrent Alloy session

    7 stash attempts before the other session was paused

  9. +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'