Interaction to Next Paint (INP) es una métrica de rendimiento web que evalúa la capacidad de respuesta de una página a las interacciones del usuario. Mide el tiempo transcurrido desde que un usuario inicia una interacción (clic, tap, pulsación de tecla) hasta que el navegador pinta visualmente el siguiente frame que refleja el resultado de esa interacción. A diferencia de First Input Delay (FID), que solo mide la demora en el procesamiento del primer input, INP considera la duración completa de la interacción, incluyendo el tiempo de procesamiento de eventos, los delays y el tiempo de renderizado, proporcionando una visión más completa de la experiencia de usuario en cuanto a la reactividad de la interfaz.
INP es una métrica clave en las Core Web Vitals de Google, lo que impulsa su adopción en herramientas de monitoreo de rendimiento web. Se implementa y mide a través de APIs de navegador como la Event Timing API y la Performance Timeline API. Herramientas como Lighthouse, PageSpeed Insights, Chrome User Experience Report (CrUX) y Google Search Console utilizan INP para evaluar y reportar el rendimiento de las páginas web en el campo (Real User Monitoring - RUM) y en laboratorio. Plataformas de RUM como New Relic, Datadog o Dynatrace también integran la medición de INP para que los equipos puedan identificar y optimizar interacciones lentas en sus aplicaciones.
Para un Arquitecto de Sistemas, INP es crucial porque impacta directamente la percepción de calidad y usabilidad de una aplicación, lo que a su vez afecta la retención de usuarios y las tasas de conversión. Un INP deficiente puede indicar cuellos de botella en el hilo principal (main thread) del navegador, como JavaScript de larga ejecución, costosos cálculos de layout o renderizado, o una gestión ineficiente de eventos. Los arquitectos deben considerar trade-offs en el diseño de la frontend y la backend: ¿dónde se realiza el procesamiento (client-side vs. server-side rendering, hidratación), cómo se gestiona el estado, y cómo se optimiza la carga de recursos para minimizar el bloqueo del hilo principal? La optimización de INP puede requerir estrategias como la división de código (code splitting), la virtualización de listas, el uso de Web Workers para tareas computacionalmente intensivas, o la priorización de la interactividad sobre la carga inicial completa, balanceando la complejidad del desarrollo con la experiencia de usuario final.