From 552b0adb687955c60f8839b4de5f309eb0d85c84 Mon Sep 17 00:00:00 2001 From: Satyam Rastogi Date: Sat, 30 May 2026 03:30:26 +0530 Subject: [PATCH] docs(film): capture/render workflow readme --- marketing/product-film/README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 marketing/product-film/README.md diff --git a/marketing/product-film/README.md b/marketing/product-film/README.md new file mode 100644 index 0000000..aa25827 --- /dev/null +++ b/marketing/product-film/README.md @@ -0,0 +1,32 @@ +# LynkedUp Pro โ€” Product Film (Remotion) + +Flagship ~5-min marketing film, composed from real app screenshots + animated brand beats. +See `docs/superpowers/specs/2026-05-30-product-film-design.md` for the design. + +## Workflow + +1. **Capture** the app (dark mode). From the repo root, start the CRM: + ``` + npm run dev # serves http://localhost:5173 + ``` + Then in this folder: + ``` + npm install + npx playwright install chromium # first time only + npm run capture # writes public/captures/*.png + ``` +2. **Preview** in Remotion Studio: + ``` + npm run dev + ``` +3. **Render**: + ``` + npm run render # -> out/lynkedup-pro-film.mp4 + ``` + +## Notes +- `public/captures/` and `out/` are gitignored (local artifacts). Re-run `npm run capture` to refresh. +- The capture script navigates within the SPA (history pushState) rather than reloading per route, because the CRM keeps auth in memory only โ€” a full reload would log out and redirect to /login. +- Music: drop a royalty-free track at `public/audio/music.mp3` and set `HAS_MUSIC = true` in `src/components/AudioTrack.tsx`. +- Voiceover: captions ship now; the VO script lives in the design spec ยง5 (record later, drop onto the same timeline). +- Does **not** modify any CRM code โ€” it only screenshots the running app.