fix(intro): splash reliability on fresh visits + 3x lighter video #90

Merged
ai merged 1 commits from intro-reliability-video-perf into main 2026-07-15 10:54:21 +00:00
Collaborator
  • SplashScreen no longer re-checks neode_intro_seen internally — it silently skipped the logo-tap/typing sequence whenever the browser had seen the intro before, even when App.vue explicitly requested it (demo fresh visits, prod Replay Intro). App.vue is now the single decision point.
  • Intro video re-encoded 12.7MB/12.6Mbps → 4.3MB/4.2Mbps (1920×1080 CRF23, faststart, unused audio track dropped) — visually identical; ?v=8.
  • <link rel=preload as=video> injected the moment the splash is scheduled (the video element only mounts ~20s in; cold caches used to fetch mid-sequence and stutter). Injected only when the splash will actually show, so onboarded prod nodes don't pay for it.
  • Demo nginx: media extensions added to the immutable-cache regex (assets are ?v-versioned). Config nginx-t validated.

Works in both demo and prod modes — prod's normal skip-to-login behavior is unchanged.

🤖 Generated with Claude Code

- SplashScreen no longer re-checks `neode_intro_seen` internally — it silently skipped the logo-tap/typing sequence whenever the browser had seen the intro before, even when App.vue explicitly requested it (demo fresh visits, prod Replay Intro). App.vue is now the single decision point. - Intro video re-encoded 12.7MB/12.6Mbps → 4.3MB/4.2Mbps (1920×1080 CRF23, faststart, unused audio track dropped) — visually identical; `?v=8`. - `<link rel=preload as=video>` injected the moment the splash is scheduled (the video element only mounts ~20s in; cold caches used to fetch mid-sequence and stutter). Injected only when the splash will actually show, so onboarded prod nodes don't pay for it. - Demo nginx: media extensions added to the immutable-cache regex (assets are ?v-versioned). Config nginx-t validated. Works in both demo and prod modes — prod's normal skip-to-login behavior is unchanged. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ai added 1 commit 2026-07-15 10:54:16 +00:00
- SplashScreen no longer re-checks neode_intro_seen itself: it silently
  skipped the whole logo-tap/typing sequence for any browser that had
  seen the intro before, even when App.vue explicitly requested it (demo
  fresh visits, Replay Intro). App.vue is the single decision point.
- Intro video re-encoded 12.7MB/12.6Mbps → 4.3MB/4.2Mbps (1920x1080 CRF23
  faststart, muted track dropped) — visually identical on this
  illustrated content; cache-buster bumped to v=8.
- Video is <link rel=preload>ed the moment the splash is scheduled (the
  <video> element only mounts ~20s in, so cold caches used to start the
  download mid-sequence and stutter).
- nginx demo cache regex now covers mp4/webm/mp3/webp/woff2 so repeat
  visits play from browser cache.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ai merged commit 2c82b498f0 into main 2026-07-15 10:54:21 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lfg2025/archy#90
No description provided.