Build Log
MedinaCHF Post-Invitation Onboarding, and the Worktree Env File Nobody Was Editing
August 19, 2026
Built a dedicated post-invitation welcome page and first-login Getting Started card for Friday's member rollout, preserving the existing invitation/auth system entirely — then lost most of the session to a Neon credential mystery that turned out to be two different .env.local files (main checkout vs. worktree) nobody realized were out of sync.
Timeline
What shipped
products/medinaCHF/lib/db/schema.ts — families.welcomeSeenAt, nullable timestamp, additive only
products/medinaCHF/app/welcome/page.tsx — dedicated post-invitation welcome page, outside app/member/ so it skips member-area nav/tab chrome
products/medinaCHF/components/AddToPhoneButton.tsx — captures real beforeinstallprompt where supported, collapsed manual-steps fallback everywhere else
products/medinaCHF/components/GettingStartedCard.tsx — dismissible first-visit card on Member Home, four numbered orientation items + one-line membership requirement
products/medinaCHF/lib/actions/onboarding.ts — markWelcomeSeen, single shared action for both dismiss surfaces, isNull()-guarded so it's a true no-op once set
products/medinaCHF/app/member/layout.tsx — first-visit redirect to /welcome for any family that hasn't onboarded yet
products/medinaCHF/lib/queries/member-home.ts — hasSeenWelcome (redirect gate) and shouldShowGettingStarted (card visibility, deliberately a different check)
Deployed live to medinachf.forgekits.build — schema pushed to production Neon, independently verified via information_schema before and after
“ok, so the issue is that you are not looking at the correct env file. I have it open and it matches what is in neon”