Follow-up from review on #1057.
On video-led landing pages the hero <video> (LandingHero.astro) has no poster, no preload, and no error handling, replacing an <img> that had loading="eager" + fetchpriority="high". <video> is not LCP-priority-eligible, so the hero regresses on every video-led page.
Root issue for the poster fallback: video-thumbnail.ts only allowlists engcomfy.com, but live hub thumbnails are served from comfy-hub-assets.comfy.org (verified: the image-to-3d hero video is https://comfy-hub-assets.comfy.org/uploads/...mp4), so getVideoFrameUrl returns null for all of them and the fallback is dead in production.
Proposed fix (needs care, so tracked separately):
- Confirm
comfy-hub-assets.comfy.org supports Cloudflare cdn-cgi/media/mode=frame, then widen CLOUDFLARE_CDN_DOMAIN (shared util, site-wide blast radius).
- Add
poster (from getVideoFrameUrl) + preload + the ThumbnailDisplay.astro 3s paused && readyState < 3 fallback to the hero video.
- Re-check LCP with Lighthouse.
Reported by @MaanilVerma.
Follow-up from review on #1057.
On video-led landing pages the hero
<video>(LandingHero.astro) has noposter, nopreload, and no error handling, replacing an<img>that hadloading="eager"+fetchpriority="high".<video>is not LCP-priority-eligible, so the hero regresses on every video-led page.Root issue for the poster fallback:
video-thumbnail.tsonly allowlistsengcomfy.com, but live hub thumbnails are served fromcomfy-hub-assets.comfy.org(verified: the image-to-3d hero video ishttps://comfy-hub-assets.comfy.org/uploads/...mp4), sogetVideoFrameUrlreturns null for all of them and the fallback is dead in production.Proposed fix (needs care, so tracked separately):
comfy-hub-assets.comfy.orgsupports Cloudflarecdn-cgi/media/mode=frame, then widenCLOUDFLARE_CDN_DOMAIN(shared util, site-wide blast radius).poster(from getVideoFrameUrl) +preload+ theThumbnailDisplay.astro3spaused && readyState < 3fallback to the hero video.Reported by @MaanilVerma.