Most UGC widgets damage Core Web Vitals because they were built before CWV mattered. Idukki was built after, here’s why it stays out of your way:
Reserved layout
We render an empty container with the right aspect ratio immediately. Images and video lazy-load into it. CLS contribution stays at 0.001 in our reference tests.
Lazy mount
Tile interactivity (pin to expand, video play, hotspot drawer) is mounted only when the widget enters the viewport, not on page load. INP for first interaction stays under 200ms.
AVIF + WebP
All images are served as AVIF first, WebP fallback. JPEG is the last resort, only for ancient browsers.
What to check on your theme
- Reserve space for the widget in your CSS, don’t let it inject into a 0-height container
- Avoid loading the widget script with `async` after a render-blocking script (defer is fine)
- Don’t put a third-party tag that mutates the DOM near the widget