Skip to content

feat(homepage): scroll-world cinematic homepage — fly through the Interfacer world - #883

Draft
phoebus-84 wants to merge 1 commit into
mainfrom
new_home
Draft

feat(homepage): scroll-world cinematic homepage — fly through the Interfacer world#883
phoebus-84 wants to merge 1 commit into
mainfrom
new_home

Conversation

@phoebus-84

Copy link
Copy Markdown
Contributor

Summary

Replaces the static hero/cards/map homepage with a scroll-scrubbed cinematic homepage: as the visitor scrolls, a pre-rendered camera flies seamlessly through the Interfacer world (architecture A — locked-isometric glide, the legs ARE the journey, no connector shots).

Draft state: the desktop chain is complete and verified (seams reviewed frame-by-frame, blob seekable, reduced-motion aware, phone 390x844 sanity pass). Still TODO before merge:

  • i18n wiring (copy is currently hardcoded in WORLD_CONFIG, lint disable justified)
  • Mobile chain (native 9:16 clips) — frozen by user decision 2026-08-06, render later
  • Real user testing on the deployed preview

What's included

  • pages/index.tsx — 6 scroll-scrubbed sections (Commons, FabLab, Passport, Map, Wallet, World) with eyebrow/title/body/tags + final CTA, driven by the scrub engine
  • lib/scroll-world/scrub-engine.js — scroll scrub engine (blob seekable, reduced-motion aware), mounted via require + unmount cleanup
  • public/sw/ — 6 leg clips (mp4) + WebP stills + mobile variants (~12 MB)
  • pages/_document.tsx — Space Grotesk + IBM Plex Sans via Google Fonts
  • pages/_app.tsxviewport-fit=cover for edge-to-edge stage
  • .gitignore — ignore .sw-build/ render scratch
  • .agents/skills/scroll-world/ + skills-lock.json — the scroll-world skill

Rendering pipeline

Clips rendered via Monid (Seedance 2.0, start+end frame-lock) at 480p, ~$2.48 total. See .agents/skills/scroll-world/references/pipeline.md for the full chain.

Verification

  • pnpm check-types
  • next lint (2 pre-existing lint issues in the page fixed: dead eslint-disable for a non-existent rule, i18next/no-literal-string on the title)
  • prettier
  • Seams 1+3 visually verified no-pop; blob seekable; finale CTA holds; reduced-motion by code review (bd na7.1–na7.4)

…nterfacer world

Replace the static hero/cards/map homepage with a scroll-scrubbed,
pre-rendered camera flight through the Interfacer world (architecture A,
locked-isometric glide, no connectors):

- pages/index.tsx: 6 sections (Commons, FabLab, Passport, Map, Wallet,
  World) with eyebrow/title/body/tags + final CTA, driven by
  lib/scroll-world/scrub-engine.js; copy hardcoded in WORLD_CONFIG
  (i18n wiring deferred, lint disable justified)
- lib/scroll-world/scrub-engine.js: scroll scrub engine (blob seekable,
  reduced-motion aware), mounted via require + unmount cleanup
- public/sw/: 6 leg clips (mp4) + stills + mobile variants (webp)
- pages/_document.tsx: Space Grotesk + IBM Plex Sans via Google Fonts
- pages/_app.tsx: viewport-fit=cover for edge-to-edge stage
- .gitignore: ignore .sw-build/ render scratch
- add scroll-world skill (.agents/skills/scroll-world) + skills-lock.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant