Back to feed
Mar 12, 2026 • 2 min read

Achieving Sub-100ms Interaction Times on Modern Web Applications

#Performance #React #JavaScript

Many developers obsess over Lighthouse scores. They optimize static page speeds, make sure images are compressed, and hit 100 on mobile audits. Yet, once a real human sits down to interact with the finished app, every single click feels slightly sluggish, the typing delays in forms are tangible, and transitions display noticeable visual stuttering.

User responsiveness is more than a pre-rendered initial score; it is about perceptual physics. Here is how I tune modern web interfaces to make them feel instantaneous:

Eliminate Layout Shifts (CLS) Preemptively

Never import dynamic components without declaring their exact structural aspect-ratios or reservation height boxes. When a blog post loads and pushes the sidebar content down, the cognitive load on the user rises. Always define:

  • Content grid heights using Tailwind's grid or responsive aspect ratios.
  • Stable containers that maintain their size even when the inner content is loading or transitioning.

Keep React Renders Localized

In React applications, state management is often lifted unnecessarily to the top level. When a user types a comment into a form, we do not need the entire app navigation container to re-render.

  • Keep form field values localized within the form component.
  • Stabilize complex callback dependencies using React's memoization hooks or simple structural separations.

By ensuring our component tree only renders what is physically updating on screen, we drop interaction times down to the sub-100ms gold standard, creating a silky-smooth, premium feeling.

© 2026 Kristijan Soldo