Verify apps/docs
Launch
cd apps/docs && pnpm dev # Next.js + Turbopack, ready in <1s on :3000
Wait for Ready in in the log. Port 3000; kill with lsof -ti:3000 | xargs kill.
Drive
Playwright is installed globally (asdf node), not in the repo. From a scratch
dir, symlink the global modules so import { chromium } from "playwright"
resolves:
ln -sfn "$(npm root -g)" <scratchdir>/node_modules
Use a 1280x960 viewport — the mobile demos render a centered phone frame on desktop widths. Key surfaces:
- Mobile demos:
/demo/<app>(e.g./demo/google-photos). Transitions are the product — capture mid-transition frames withwaitForURL+ ~120ms delay, and let animations settle ~1200ms before asserting final state. - Remount checks: tag a DOM node (
el.__tag = "x") before navigating, re-read after — survives ⇔ no remount (used for the bottom-nav/nested-boundary shell). - Docs pages:
/docs/...; llms files are static frompublic/(/llms.txt,/llms/*.txt).
Gotchas
- google-photos "Collage" entry is a
<button>withrouter.push, not a link. - Dev console shows a pre-existing CORS error for
unpkg.com/react-grab— noise. - Stale
.next/typesvalidator errors after moving route files — ignore; regenerated on next dev/build.