Daily log
Day 5 / 132
doneFriday, May 15, 2026 · Phase 1
Tasks
- [x] Wire GA4 across all five live sites (LaunchCost, Parent Care, TC Media, Handscript, LocalShoot)
- [x] Birthday-Challenge: prettier format fix on LAUNCH_LOG.md for both spokes
- [x] Birthday-Challenge: LaunchCost GA4 wire-up (commit 41a4ad6) + Parent Care GA4 wire-up (commit 4e05e69)
- [x] shot-spot (LocalShoot): GA4 via @next/third-parties
- [x] Handscript: build env-driven Analytics component + mount in app/layout.tsx
- [x] Vercel: set NEXT_PUBLIC_GA4_ID env var on TC Media + trigger production redeploy
- [x] Vercel: link Handscript project to GitHub djd39448/Handscript repo + set rootDirectory + env var + first git deploy
- [x] Vercel: delete onearmedhaul project (undeploy, keep code)
- [ ] Flip TC Media counts_toward_total: true in roadmap.yaml (counted launch #3)
- [ ] Replace [email protected] placeholder in TC Media
- [ ] Parent Care reviewer-consent close-out
- [ ] Friday-launch dry run: mobile QA on LaunchCost + Parent Care
- [ ] Draft Friday launch posts (LinkedIn + Hub blog)
- [ ] Search Console verification + sitemap submission across the spokes
What I learned
- — Five GA4 wire-ups in one morning is fast when the components are already mounted and waiting. Three Astro spokes via site.ts edits, two Next.js sites via env vars in Vercel. The slow part was creating the GA4 properties + finding the right Vercel team scope on the token, not the actual code.
- — Vercel's Northstar account model bites: personal-scope tokens cannot see team-scope projects, even when the human owns both. The token has to be minted from a scope dropdown set to the team that holds the projects — a one-line UI miss that cost ~15 minutes of diagnosis.
- — When asked to 'clean up' something with a shared-resource token, the right default is to ask before deleting. Saved as a feedback memory after I started to inventory the whole Vercel team and got correctly pulled back: do exactly the named asks, nothing more.
- — Code preservation discovery: onearmedhaul Vercel project deployment files API exposes the full source tree as it was uploaded. A safe undeploy path is download-source-first, push-to-GitHub-if-needed, then delete project. In this case the code was already on GitHub under a slightly different spelling — verifying that before deletion is the safe sequence.
Tomorrow
- → Day 6 (Saturday): rest. No commits planned, no critical-path work.
- → Day 7 (Sunday): backfill the missing daily logs + trackers + LAUNCH_LOGs. Flip TC Media counts_toward_total to true now that the gate closed. Then start carrying the Day-5-carried items (mobile QA, reviewer consent, contact email, launch posts) into Week 2 planning.
Day 5 — analytics across the factory
Friday became the analytics-everywhere day. Five GA4 properties, five sites, all verified live in HTML by EOD morning. The three Astro spokes (LaunchCost, Parent Care, plus the existing scaffolding) got one-line config edits because their Analytics.astro component was already mounted and waiting. The two Next.js sites (TC Media, Handscript) got the env-var path — NEXT_PUBLIC_GA4_ID set in Vercel, redeploys triggered, tags verified. LocalShoot used the official @next/third-parties wrapper, slightly different pattern, same outcome.
The slowest part was Vercel-scope plumbing. The first token issued was minted on the user’s personal account scope ([email protected]), but the projects live on the TrustCore Systems Pro team — a separate scope even though the same human owns both. The fix was minting a new token from the team scope explicitly. About 15 minutes of API “not authorized” diagnosis before that clicked.
Vercel cleanup, scoped narrowly. One unused deployment (onearmedhaul) was undeployed via the API: confirmed the source code existed elsewhere first (it was already pushed to djd39448/onearmhaul on GitHub — different spelling than the Vercel project name), then deleted the Vercel project. No other projects touched, despite a vague “clean up” framing on the original ask. Saved a feedback memory to make that the default posture for any future shared-resource credential use.
What didn’t ship. Five carry-forwards from Day 4 didn’t land Friday either: TC Media contact-email replacement, the counts_toward_total: true flip in roadmap.yaml (the §5 gate closed but the doc didn’t get updated), Parent Care reviewer consent, mobile QA dry run, Friday launch posts. The discipline mechanism is intact (the gate is real, scoreboard stays at 2/25 until the doc reflects the gate), but the post-launch theater (announcement, public scoreboard bump) slid.
Pace. Two counted launches at end of Week 1 against a Path C cadence of three/week is under target by one. The Day 4 side-quest day plus the Friday-doesn’t-finish-everything shape ate the buffer. Week 2 niche selection (HVAC Quote Decoder, Roof Storm Checklist) opens with that one-launch deficit to close.
← All days