The current hero photo turned into an 8-second loop of the fingers typing, for Gera to approve or veto before it merges (homepage wave 2, slice S2).
2026-09-30 · branch feat/home-hero-video · not merged
The photo, with the fingers typing. The loop starts and ends on the hero photo, so it joins invisibly and fades in over the still after the page loads. Visitors who ask for reduced motion, or are on Save-Data or a 2G connection, keep the still and never download the clip.
If it doesn't play in Safari, open the MP4 directly.
| Model | Frame | Desktop MP4 (H.264) | Desktop WebM (VP9) | Phone MP4 | Poster |
|---|---|---|---|---|---|
| Seedance 2.5, 1080p, high bitrate | 1872×1010, 24 fps, 8.04 s | 3.18 MB · 3.3 Mbps | 1.22 MB · 1.3 Mbps | 0.70 MB · 0.73 Mbps | The hero photo itself |
Captured mid-loop from a local build of the branch. The clip takes the photo's exact box and crop at every width.



Four renders, each with the hero photo as start and end frame. Seam is how similar the frames are across the loop point (1.0 means identical). Steadiness is the lowest similarity of the laptop's side ports to the first frame; they should never move.
| Render | What came back | Camera | Seam | Hands | Result |
|---|---|---|---|---|---|
| Seedance 2.5 · 1080p | 1920×1080, 6.2 Mbps | Locked · 0.989 | 0.993, inside normal motion (clip minimum 0.981) | Clean | Shipped |
| Kling 3.0 · "4K" | 3840×2160 at only 1.4 Mbps, upscaler halos | Push-in near 4 s · 0.964 | 0.997 | Clean | Not real 4K; moves |
| Seedance 2.0 · 4K, roll 1 | 3840×2160, 30 Mbps | Breathing zoom · 0.931 | 0.985, a visible jump | Clean, livelier | Camera moves |
| Seedance 2.0 · 4K, roll 2 | 3840×2160, 17 Mbps | Drift · 0.946 | 0.963, the worst step in the clip | Clean | Loop jumps |
The 4K renders have more detail, but the camera drifts and the loop jumps, which the brief rules out. So the page ships at 1080p, native size, never upscaled. A 4K version would need a render that holds the camera still; two tries did not.


