Uh oh!
There was an error while loading. Please reload this page.
feat(autopay): Remotion video pipeline + add-card screenshot (#158913… - #171
Conversation
…, #158914) Adds the video + screenshot assets on top of the AutoPay docs merged in #169. #158914 — Remotion video pipeline: - Isolated remotion/ workspace (own package.json/tsconfig/node_modules); never installed by npm ci nor walked by the site build. tsconfig excludes it; renders run manually via `cd remotion && npm run render`. - Reusable <VideoEmbed> component (poster-first, preload=none, reduced-motion safe). - Hosting decision: small compressed H.264 MP4s committed to static/video/autopay/. - 5 first-cut clips embedded into the business page (setup, self-service, add-card, retry-to-recovery, notifications). #158913 — screenshots: - cards-02-add-card.png captured from betabulk (John Doe), fills the add-card gap. - Asset manifest under static/img/business/autopay/MANIFEST.md. NOTE: the 5 clips are FIRST-CUT PLACEHOLDERS — flagged with TODO(#158914) in each composition, the business page, and remotion/README.md. They must be revisited and re-recorded once the betabulk AutoPay scenario URLs are available, with copy aligned to Ankit's clip scripts (#158914 R5). portal-01 recapture (flagged in #169) also pending. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…#158913, #158914) Replaces mockups with real customer-portal captures (John Doe / betabulk) and rebuilds the Remotion clips to sequence those real screenshots. Screenshots (#158913) — 7 real betabulk captures now in the business-page sliders: portal-01-summary-active (replaces the flagged wrong mockup), portal-02-trialing, portal-03-canceled-pending-reactivation, portal-04-expired (new + wired into the previously image-less Expired step), portal-05-no-cards, recovery-01-past-due, states-03-magic-link-invalid. Kept as mockups (see MANIFEST.md): the three cancel/reactivate dialogs, recovery-02, states-01/02/04, notifications-01..06. Videos (#158914) — rebuilt from the real screenshots: new Reel component sequences the real PNGs (staticFile from remotion/public/screens, copied by render-all.mjs, gitignored) with captions + crossfades; all 5 clips re-rendered. typecheck + build green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
junaidsarfrazdev
commented
Aug 18, 2026
@claude review |
Claude finished @junaidsarfrazdev's task in 1m 44s —— View job Claude finished the reviewTodo list:
SummarySolid, well-scoped PR. The FindingPR description says the placeholder flags are missing from the diff. The PR body states the 5 clips are "FIRST-CUT PLACEHOLDERS — flagged with Minor / non-blocking
|
`autoPlay={!reduced}` meant a reader with `prefers-reduced-motion` clicked the
poster, got a paused `<video>`, and had to click the native control to actually
start it. That gate misreads the preference: it governs UNSOLICITED motion, and
`playing` only becomes true from the poster click, so playback here is always
user-initiated.
Autoplay is unconditional now, which makes `usePrefersReducedMotion` dead — the
hook existed for that one prop, so it goes with it.
Raised as a non-blocking note by @claude on PR #171.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>junaidsarfrazdev
commented
Aug 18, 2026
Thanks — the finding was correct, but the fix is the other branch of what you offered. The The branch already documents this, which is worth checking against next time the two disagree:
So I've corrected the PR description instead, and it now also records what genuinely is still a mockup — the three cancel/reactivate modal dialogs (need an interactive click on the live portal), Minor finding — fixed in On the third point — CI is the right place to confirm the |
junaidsarfrazdev
commented
Aug 18, 2026
@claude review |
Claude finished @junaidsarfrazdev's task in 1m 28s —— View job Claude finished re-reviewing @junaidsarfrazdev's PRTodo list:
SummaryBoth follow-ups from the previous review are handled correctly:
Finding
Minor / non-blocking
Everything else — the |
…emoved
It still documented `autoPlay={!reduced}` and a `reduced` state, neither of
which exists — so the component's own README sent a reader looking for deleted
code. Replaced with what the code does now, and why it is not a reduced-motion
violation: the `<video>` only mounts from the poster's click handler, so
playback is always user-initiated.
Caught by @claude on PR #171. I had grepped `index.tsx` for the hook when
removing it, but not the component's README beside it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>junaidsarfrazdev
commented
Aug 18, 2026
Good catch — fixed in
My miss — when removing the hook I grepped Agreed on both minor points. The One thing worth recording since it isn't visible from the diff: I could not verify playback end-to-end in a browser. The clips don't decode in the Chrome available here — opening |
Adds the video + screenshot assets on top of the AutoPay docs merged in #169.
#158914 — Remotion video pipeline
remotion/workspace (own package.json/tsconfig/node_modules); never installed bynpm cinor walked by the site build.tsconfigexcludes it; renders run manually viacd remotion && npm run render.<VideoEmbed>component (poster-first,preload=none, click-to-play).static/video/autopay/.Reelcomponent — not synthetic mockups.#158913 — screenshots
cards-02-add-card,portal-01-summary-active(replaces the wrong mockup flagged in 158909 :: docs: AutoPay public documentation #169),portal-02-trialing,portal-03-canceled-pending-reactivation,portal-04-expired(new — the Expired step had no image),portal-05-no-cards,recovery-01-past-due,states-03-magic-link-invalid.static/img/business/autopay/MANIFEST.md, which records for every asset whether it is a real capture or one of Menna's mockups, and why.What is still a mockup (all listed in MANIFEST.md, none blocking this PR)
portal-03was captured from one, but the dialogs need an interactive click on the live portal, which was not viable here (CDPPage.captureScreenshottimes out; the extension viewport caps at 360px). Capture via Menna or a follow-up session; the sub URLs are ready.recovery-02-payment-confirmed— needs a completed payment (card entry).states-01/02/04,notifications-01..06.Copy alignment with Ankit's clip scripts (#158914 R5) is still worth a pass before these are treated as final.
Description corrected 2026-08-18 after @claude's review. The earlier body said the 5 clips were "FIRST-CUT PLACEHOLDERS — flagged with
TODO(#158914)" and that a portal-01 recapture was pending. That was written before 38bf32a, which recaptured portal-01 and rebuilt every clip from the real screenshots, so the note described a state the branch had already moved past — and theTODOmarkers the review correctly could not find were never added because they had stopped being true. Adding them now would label real captures as provisional.